v x

Invisible Text. Fuck you.

Home Code Archive ICS SCADA Papers Linux Papers Malware Defense Papers Other Papers Russian Papers The Old New Thing Papers Windows Papers Malware Collections

The Old New Thing - 2003 08

2003-08-05 - Answer to previous exercise on proportional scrollbars
2003-08-05 - Changing the Windows boot logo
2003-08-05 - Keyboard accessibility for scrollbars
2003-08-07 - Limitations on DLL resources in Windows 95
2003-08-07 - Scrollbars bart 6 - The wheel
2003-08-08 - Why is a registry file called a _hive__
2003-08-11 - Answers to exercises
2003-08-11 - Scrollbars part 7 - Integrality
2003-08-12 - Why can't I remove _for test_evaluation purposes only__
2003-08-13 - Scrollbars part 8 - Integral interactive resizing
2003-08-14 - Windows 95 doesn't boot with more than 1GB of RAM
2003-08-15 - A subtlety in the keyboard code
2003-08-15 - Answer to exercise
2003-08-16 - A day in the trenches
2003-08-18 - There will be a part 9 in the scrollbar series
2003-08-18 - Why does Windows 95 have functions called BEAR, BUNNY and PIGLET_
2003-08-19 - Lessons from the trenches
2003-08-20 - What is in the _Windows 95 Special Edition_ box_
2003-08-21 - The secret life of GetWindowText
2003-08-22 - Why isn't my time zone highlighted on the world map_
2003-08-23 - Knitting a pumpkin
2003-08-25 - Windows brings out the Rorschach test in everyone
2003-08-26 - Rotating the Z-order
2003-08-27 - What are all these files in my C_WINDOWSCSC directory_
2003-08-27 - What are those little overlay icons_
2003-08-27 - Why are these unwanted files_folders opening when I log on_
2003-08-29 - Hardware backwards compatibility
2003-08-29 - Painting only when your window is visible on the screen
2003-08-31 - Setup could not verify integrity of file

The Old New Thing - 2003 09

2003-09-01 - Even the trees are falling for the media's lies
2003-09-01 - Suburbs make you fat, researchers conclude
2003-09-01 - The default answer to every dialog box is _Cancel_
2003-09-02 - Determining whether your window is covered
2003-09-02 - The World Adult Kickball Association
2003-09-03 - Why is there no programmatic access to the Start menu pin list_
2003-09-04 - Why are the rules for GetWindowText so weird_
2003-09-05 - Case mapping on Unicode is hard
2003-09-05 - How to recognize different types of timestamps from quite a long way away
2003-09-05 - Where is my program running from_
2003-09-08 - An insight into the Windows 95 startup sound
2003-09-08 - It's a lot easier to write a column if you don't care about accuracy
2003-09-09 - If you see only one Elvis vs. Mummy movie this year, make it this one
2003-09-09 - Scrollbars part 9 - Maintaining the metaphor
2003-09-10 - Computers are still too hard to use.
2003-09-10 - Why do some people call the taskbar the _tray__
2003-09-11 - Scrollbars part 10 - Towards a deeper understanding of the WM_NCCALCSIZE message
2003-09-11 - You too can dress like Raymond
2003-09-12 - Whimsical bug reports
2003-09-12 - Why does the taskbar default to the bottom of the screen_
2003-09-13 - Answers to exercises from Scrollbars Part 10
2003-09-13 - I'm not sure if this was a dare
2003-09-14 - Something about Microsoft employees and milk
2003-09-15 - Eric's complete guide to BSTR semantics
2003-09-15 - Scrollbars part 11_ Towards an even deeper understanding of the WM_NCCALCSIZE message
2003-09-16 - Why does Win32 fail a module load if an import could not be resolved_
2003-09-17 - Answers to exercise from Scrollbars Part 11
2003-09-17 - Scrollbars part 12_ Applying WM_NCCALCSIZE to our scrollbar sample
2003-09-17 - The end of the scrollbar series
2003-09-18 - Emergency vacation
2003-09-18 - Improving the world one bad analogy at a time
2003-09-19 - How much is that gigabyte in the window_
2003-09-19 - Pre-travel insomnia
2003-09-20 - When I dock my taskbar vertically, why does the word _Start_ disappear_
2003-09-29 - Back from Europe
2003-09-29 - In case people got the wrong impression
2003-09-29 - Why you can't rotate text
2003-09-30 - Why is the readonly property for folders so strange_

The Old New Thing - 2003 10

2003-10-01 - Jag skrivar svenska inte so bra
2003-10-01 - Jag taler lita svenska
2003-10-01 - Why do I get spurious WM_MOUSEMOVE messages
2003-10-02 - What do the text label colors mean for files
2003-10-02 - Why does my Advanced Options dialog say ON and OFF after every option
2003-10-03 - Why cant I use amp-accelerators on the Start menu
2003-10-06 - Researchers discover link between music and drinking
2003-10-06 - Why does the System Properties page round the memory size
2003-10-07 - Low-tech usability testing
2003-10-07 - Stupid memory-mapping tricks
2003-10-08 - Im doing this instead of writing a book
2003-10-08 - In Explorer you can right-click the icon in the caption
2003-10-08 - Why is address space allocation granularity 64KB
2003-10-09 - Other uses for bitmap brushes
2003-10-10 - Why doesnt the clock in the taskbar display seconds
2003-10-13 - Why is there no WM_MOUSEENTER message
2003-10-14 - Answer to previous exercise about the mythical WM_MOUSEENTER message
2003-10-14 - Why dont notification icons get a message when the user clicks the X button
2003-10-15 - Murphys law for school
2003-10-15 - What about BOZOSLIVEHERE and TABTHETEXTOUTFORWIMPS
2003-10-16 - Scrollbars redux Part 12
2003-10-16 - The much-misunderstood nop action
2003-10-17 - Dont let Marketing mess with your slides
2003-10-18 - Curling anyone
2003-10-20 - The more I learn about Sweden the weirder it gets
2003-10-20 - What is the AltTab order
2003-10-21 - Using the TAB key to navigate in non-dialogs
2003-10-22 - Whats the deal with those reserved filenames like NUL and CON
2003-10-23 - Writing a sort comparison function
2003-10-24 - Why Daylight Savings Time is nonintuitive
2003-10-25 - Kinder Überraschungen
2003-10-26 - Being the Nobel Peace Prize
2003-10-27 - Getting a custom right-click menu for the caption icon
2003-10-28 - When vendors insult themselves
2003-10-29 - Drawing an active-looking caption even when not active
2003-10-30 - I thought you said people dont know how to read analog clocks
2003-10-31 - Why highlighting by inverting colors is a bad idea

The Old New Thing - 2003 11

2003-11-03 - The long and sad story of the Shell Folders key
2003-11-04 - Just follow the rules and nobody gets hurt
2003-11-05 - An anecdote about improper capitalization
2003-11-06 - Little facts you didnt know about concrete
2003-11-06 - Why are companies so worried about retraining costs
2003-11-07 - Returning values from a dialog procedure
2003-11-10 - A warning to people averse to code
2003-11-10 - Homework assignment about window subclassing
2003-11-10 - How much do you expect from a framework layer
2003-11-11 - Safer subclassing
2003-11-11 - Welcome Martyn Lovell
2003-11-12 - A different type of dialog procedure
2003-11-13 - Another different type of dialog procedure
2003-11-13 - Answer to previous exercise about m_fRecursing
2003-11-13 - British newspapers are much more fun to read
2003-11-14 - Preventing edit control text from being autoselected in a dialog box
2003-11-17 - Another favorite from the Grauniad
2003-11-17 - More stories of bad hardware
2003-11-17 - Stay healthy Drink Guinness
2003-11-18 - Make_sure_the_buttons_match_the_question_-_The_Old_New_Thing
2003-11-19 - How can I tell if I have the 64-bit edition of Windows
2003-11-19 - Notepads geek options require Word Wrap be disabled
2003-11-20 - Whats the deal with the System Volume Information folder
2003-11-21 - Why isnt Fast User Switching enabled on domains
2003-11-24 - A shortcut to the Run dialog
2003-11-24 - You can dragdrop to the command prompt
2003-11-25 - What do the letters W and L stand for in WPARAM and LPARAM
2003-11-26 - Other tricks with WM_GETDLGCODE
2003-11-27 - Its like the Swedes dont want you to learn their language
2003-11-28 - Hello Sweden youre on fire

The Old New Thing - 2003 12

2003-12-01 - What are these strange values returned from GWLP_WNDPROC
2003-12-01 - What did the letters NT originally stand for
2003-12-02 - The New Old New Thing
2003-12-02 - Which message numbers belong to whom
2003-12-03 - Which window style bits belong to whom
2003-12-04 - Which access rights bits belong to whom
2003-12-05 - Why do I have to return this goofy value for WM_DEVICECHANGE
2003-12-07 - At least she represents the United States faithfully
2003-12-08 - If FlushInstructionCache doesnt do anything why do you have to call it
2003-12-08 - Whats with the catcow and dogoldfish
2003-12-09 - Scobles rant on UI defaults
2003-12-09 - Why you should never suspend a thread
2003-12-10 - What is the command line length limit
2003-12-11 - How do I pass a lot of data to a process when it starts up
2003-12-11 - Voyage to Our Hollow Earth
2003-12-12 - Tote Hose in Weilburg
2003-12-12 - Why are structure sizes checked strictly
2003-12-15 - The migration continues
2003-12-15 - Welcome to the New Old New Thing
2003-12-16 - The unsafe device removal dialog
2003-12-17 - Tinkering with the look
2003-12-17 - When marketing designs a screenshot
2003-12-18 - How to void your warranty
2003-12-18 - Rip-it
2003-12-18 - What is the window nesting limit
2003-12-19 - Sometimes an app just wants to crash
2003-12-21 - German sounds more and more like Alles Lookenpeepers every day
2003-12-22 - How do I determine whether I own a critical section if I am not supposed to look at internal fields
2003-12-22 - One in five Swedes steal their Christmas tree
2003-12-22 - The cult of PowerPoint
2003-12-23 - When programs grovel into undocumented structures
2003-12-24 - Why not just block the apps that rely on undocumented behavior
2003-12-25 - What order do programs in the startup group execute
2003-12-26 - Famous people doing mundane things news
2003-12-26 - You can read a contract from the other side
2003-12-27 - How to hide privacy violations in a privacy disclosure statement
2003-12-28 - Another privacy policy that isnt very private
2003-12-28 - Danish so-called pronunciation
2003-12-29 - Beam me up is not yet recognized
2003-12-29 - Whats with those blank taskbar buttons that go away when I click on them
2003-12-30 - At least the Danes know how to count
2003-12-30 - People with almanacs may be terrorists FBI warns
2003-12-30 - Whats the difference between CreateMenu and CreatePopupMenu
2003-12-31 - College football commercialized What ever gave you that idea
2003-12-31 - How to stop delivery of telephone books

The Old New Thing - 2004 01

2004-01-01 - Dont trust the return address
2004-01-02 - The history of calling conventions part 1
2004-01-05 - Why does the x86 have so few registers
2004-01-06 - Why does the copy dialog give such horrible estimates
2004-01-07 - The history of calling conventions part 2
2004-01-07 - Words Id like to ban in 2004
2004-01-08 - Budget cuts strike Swedish radio
2004-01-08 - Its called proofreading give it a shot why dont you
2004-01-08 - The history of calling conventions part 3
2004-01-09 - Ten-year-old Microsoft Flight Simulator terrorist
2004-01-09 - Why do member functions need to be static to be used as a callback
2004-01-11 - Is there an exclusionary rule in Sweden
2004-01-11 - Whats old is new again well its still old
2004-01-12 - Friends is so trendsetting
2004-01-13 - If you know Swedish the world is funnier
2004-01-13 - The history of calling conventions part 4 ia64
2004-01-14 - The history of calling conventions part 5 amd64
2004-01-15 - Google just keeps adding stuff
2004-01-15 - What can go wrong when you mismatch the calling convention
2004-01-16 - Aw poor guy hes so depressed
2004-01-16 - How can a program survive a corrupted stack
2004-01-19 - Uninitialized garbage on ia64 can be deadly
2004-01-20 - ia64 misdeclaring near and far data
2004-01-21 - Fixing security holes in other programs
2004-01-21 - What tools should I assume everybody has
2004-01-22 - Cell phones Cant live with em cant live without em but maybe can ban em
2004-01-22 - What happened to DirectX 4
2004-01-23 - German the language of love
2004-01-23 - The white flash
2004-01-24 - In defense of the German language
2004-01-25 - German as RPN
2004-01-26 - Blog going on autopilot for a while
2004-01-26 - David Hasselhoffs daughters normal in every way
2004-01-26 - The hollow brush
2004-01-27 - Some reasons not to do anything scary in your DllMain
2004-01-27 - Undermining your own proclamation
2004-01-28 - Another reason not to do anything scary in your DllMain Inadvertent deadlock
2004-01-28 - Passenger announcements in the airport
2004-01-29 - Ikea walk-through
2004-01-29 - Integer overflow in the new operator
2004-01-30 - How do we decide what features make it into a product
2004-01-30 - The format of string resources
2004-01-31 - Section 419 scammers arrested in Netherlands Danish flag flies proudly

The Old New Thing - 2004 02

2004-02-02 - The management of memory for resources in 16-bit Windows
2004-02-02 - What goes wrong when you add Copy To to the context menu
2004-02-03 - Mismatching scalar and vector new and delete
2004-02-04 - Answers to exercises mismatching newdelete
2004-02-04 - The Glass Engine and Ishkurs Guide to Electronic Music
2004-02-05 - The layout of a COM object
2004-02-06 - Adjustor thunks
2004-02-09 - I think this counts as having come full circle
2004-02-09 - Pointers to member functions are very strange animals
2004-02-10 - Answer to exercise Pointer to member function cast
2004-02-10 - Orkuts privacy policy and terms of service
2004-02-11 - Dunkin Donuts vs Krispy Kreme
2004-02-11 - Sure we do that
2004-02-12 - Improbable Research comes to Seattle
2004-02-12 - TEXT vs _TEXT vs _T and UNICODE vs _UNICODE
2004-02-13 - Bad version number checks
2004-02-13 - Stories of going through airport security
2004-02-14 - The Seattle Improbable Show 2004
2004-02-16 - So whats to do in Sweden
2004-02-16 - The arms race between programs and users
2004-02-17 - GetDialogBaseUnits is a crock
2004-02-17 - The social skills of a thermonuclear device
2004-02-18 - Why are RECTs endpoint-exclusive
2004-02-19 - No code is an island
2004-02-19 - Sorry the posts are late lately
2004-02-20 - Why do I get a QueryInterfaceIID_IMarshal and then nothing
2004-02-21 - Raymonds comment policy
2004-02-22 - And we will build a processor with ONE MILLION TRANSISTORS
2004-02-23 - Invalid thread and process IDs
2004-02-24 - Whats so special about the desktop window
2004-02-25 - Why cant I put hotlinks in notification icon balloon tips
2004-02-26 - Why do timestamps change when I copy files to a floppy
2004-02-27 - The correct order for disabling and enabling windows

The Old New Thing - 2004 03

2004-03-01 - Why 16-bit DOS and Windows are still with us
2004-03-02 - Went to a Seattle Thunderbirds game this weekend
2004-03-02 - Why are HANDLE return values so inconsistent
2004-03-03 - Blow the dust out of the connector
2004-03-03 - Calling the irony patrol
2004-03-04 - Sorry my kitchen is on fire
2004-03-04 - Where do those customized web site icons come from
2004-03-05 - Defrauding the WHQL driver certification process
2004-03-05 - Money can burn a hole in your pocket
2004-03-08 - C scoped static initialization is not thread-safe on purpose
2004-03-08 - Can you pass Coaching Principles and Strategies of Basketball
2004-03-09 - CharIsDigit matches more than just 0 through 9
2004-03-09 - Returning to Sweden this time with some actual knowledge of Swedish
2004-03-10 - The Department of Homeland Security the television series
2004-03-10 - Why do operations on byte result in int
2004-03-11 - Tony Harding laces up again
2004-03-11 - Why are dialog boxes initially created hidden
2004-03-12 - What happens to those To Any Soldier care packages
2004-03-12 - What is the default security descriptor
2004-03-15 - How do I convert a SID between binary and string forms
2004-03-15 - Senators are really good at stock-picking
2004-03-16 - Still more creative uses for CAPTCHA
2004-03-16 - Why do text files end in CtrlZ
2004-03-17 - More on the AMD64 calling convention
2004-03-17 - On a server paging death
2004-03-17 - Ännu skriver jag inte bra
2004-03-18 - The car with no user-serviceable parts inside
2004-03-18 - Why is the line terminator CRLF
2004-03-19 - Catholic baseball fans want to eat meat on opening day
2004-03-19 - Why does the Resource Compiler complain about strings longer than 255 characters
2004-03-20 - The only logical conclusion is that he was cloned
2004-03-22 - A privacy policy that doesnt actively offend me
2004-03-22 - Why an object cannot be its own enumerator
2004-03-23 - -notation was never legal in HTTP URLs anyway
2004-03-23 - the qUirKY jaPan HomEPage
2004-03-24 - Out of the deep fryer
2004-03-24 - Some files come up strange in Notepad
2004-03-25 - Regular expressions and the dreaded operator
2004-03-25 - Swedish spicy food
2004-03-25 - The SAS in-flight safety video
2004-03-25 - URLs too small Here comes hugeurlcom
2004-03-26 - Yahoos privacy policy regarding web bugs (1)
2004-03-26 - Yahoos privacy policy regarding web bugs
2004-03-27 - What US college students miss from home
2004-03-28 - You know youve been in Sweden too long when
2004-03-29 - Its embarrassing how little Swedish you need to know
2004-03-29 - The army is cool except for the part where you have to fight
2004-03-29 - Why CtrlAlt shouldnt be used as a shortcut modifier
2004-03-30 - Special skills draft on the drawing board
2004-03-30 - Where did my Task Manager tabs and buttons go
2004-03-31 - The look of Luna
2004-03-31 - When temperance backfires

The Old New Thing - 2004 04

501 for 510g of peanut butter
A 2 billion bridge to one person
A story about USB floppy drives
A very brief anecdote about Windows 30
Astonishingly rules apply to everyone
Beethoven as ambient music
Cleaner more elegant and wrong
Comparing the Norwegian Swedish and Danish languages
Extraterrestrial income
Extreme croquet
First thing we do is kill all the jerks
Good-Bye Lenin
How can I format my USB drive as NTFS
How to retrieve text under the cursor mouse pointer
In order to demonstrate our superior intellect we will now ask you a question you cannot answer
Mapping all those strange digits to 0 through 9
Musings on formal and informal address
NFL cracks down on grandstanding
News flash People are fooled by the Onion
Nobody said it was a democracy
Not all short filenames contain a tilde
Playing on an entirely different level
Reference counting is hard
Sorry no free ice cream in Tennessee its illegal
The martial arts logon picture
The random number seed can be the weakest link
Unicode collation is hard
Using the echo command to remember what you were doing
WM_KILLFOCUS is the wrong time to do field validation
What going to Sweden again
What is __purecall
Where does the taskbar get grouped button icons from
Where does the taskbar get grouped button titles from
Why a really large dictionary is not a good thing
Why cant I install Windows on my USB drive
Why cant the system hibernate just one process
Why doesnt C have const
Why the compiler cant autoconvert foreach to for

The Old New Thing - 2004 05

A guide to British pub etiquette
Art too bad to be ignored
Batman and Robin patrolling Whitley
Beware the hash reset attack
Broadcasting user-defined messages
Callback the safety newsletter for the aviation community
Chewing gum legalized in Singapore
Chris Pratleys history lesson
Coffee machine or assault weapon
Dead man running
Do you know when your destructors run Part 1
Do you know when your destructors run Part 2
Extending the Internet Explorer context menu
High-performance multithreading is very hard
How did those FILE_SHARE_ values come to be
How do the FILE_SHARE_ bits interact with the desired access bits
How do you undo Minimize All and Show Desktop
How does the desktop choose the icon label color
Image File Execution Options
Is open source the new monoculture
Is your web site an open relay
Kipping
Letterboxing Geocaching without the GPS
Links about COM threading models
Meet Anton Chekhov
Norway Pros and cons
Plane-spotters to require government license
Scripting is a two-edged sword
The Fderal Burau of Invstigations
The coolest thing you can do with a Gameboy is not play a game on it (1)
The coolest thing you can do with a Gameboy is not play a game on it
There are two types of scrollbars
Thinking through a feature
Today is Swedish tax day
Truckers block highway to protest high gas prices
Varför läser jag svenska
What is the difference between Minimize All and Show Desktop
When do you disable an option and when do you remove it
When do you put after a button or menu
When should your destructor be virtual
When you change the insides nobody notices
Wholl be where for whom
Why did InterlockedIncrementDecrement only return the sign of the result
Why does my hard drive light flash every few second
Why is the default 8-bit codepage called ANSI
You can do anything at zombocom anything at all
You wanted Extreme Crochet

The Old New Thing - 2004 06

A hidden performance cost of regional windows
An easy way to determine whether you have a particular file permission
Anybody remember Blade Squad or MV24
At least its easier than learning Finnish
Augusto Pinochets beverage preferences are a matter of national security
Calculate the speed of light by microwaving marshmallows
Deleted but not yet forgotten
Did you know that Baltimore has a Rumor Control Center
Do not underestimate the power of the game Deer Hunter
Drug dealers have to pay taxes too
Exploding frying pans
Fees disguised as taxes
French schoolchildren invited to draw their impressions of the United States
Hong Kong crocodile caught at last
Let there be a grand clubhouse feast
Letter carriers rebel
Monitor giving you a headache Check the refresh rate
My first death threat
Need to add 15kg and 350g
Norway works to lengthen its lead
Ringside seats at Fruit Fly Fight Club
Speeding up adding items to a combobox or listbox
Suggestion box
Taiwan law requires writing to go left-to-right instead of top-to-bottom
The difference between thread-safety and re-entrancy
The dreaded main threading model
The evolution of dialog templates 16-bit Classic Templates
The evolution of dialog templates 16-bit Extended Templates
The evolution of dialog templates 32-bit Classic Templates
The evolution of dialog templates 32-bit Extended Templates
The evolution of dialog templates Introduction
The evolution of dialog templates Summary
The only way youre going to wake up next to Claudia Schiffer
The suburbs make you fat more researchers conclude
The suggestion box is now open
Too late Mr Jenkins You were an F7 back at question 2
Tweaked comment policy
Verifying that your system files are digitally signed
What are these directories called 0409 and 1033
What does SHGFI_USEFILEATTRIBUTES mean
What is the difference between HINSTANCE and HMODULE
What was the purpose of the hPrevInstance parameter to WinMain
When cafeteria pricing meets mathematics
When can a thread receive window messages
When does SHLoadInProc unload a DLL
Why does the Links folder keep re-creating itself
You can already see the bug report that led to this dialog box

The Old New Thing - 2004 07

A twenty-foot-long computer
Another chance to see Elvis take on a mummy
Being in upper management must damage certain portions of your brain
Diagnosing a problem with calling conventions
Differences between managers and programmers part 2
Differences between managers and programmers
Disabling the program crash dialog
Dont forget to define UNICODE if you want Unicode (1)
Dont forget to define UNICODE if you want Unicode
Dont name your DLL Securitydll (1)
Dont name your DLL Securitydll
How do you detect Large Fonts (1)
How do you detect Large Fonts
How does AddRemove Programs get the size and other information
How to display a string without those ugly boxes
Lighting organic material and sucking it into your lungs
Norway drunk on success becomes a country of layabouts
Obtaining a windows size and position while it is minimized (1)
Obtaining a windows size and position while it is minimized
Positioned vs non-positioned listview views
Querying information from an Explorer window
Slightly closer to a proper football ie soccer match
The evolution of mascara in Windows UI
There are two things you can do if you have a mad crush on a boy
Watch out for those sample URLs
Welcoming a new era in Swiss army knives
What is the DS_CONTROL style for
Whats the difference between SHGetMalloc SHAlloc CoGetMalloc and CoTaskMemAlloc (1)
Whats the difference between SHGetMalloc SHAlloc CoGetMalloc and CoTaskMemAlloc
Whats this fascination with Germanic languages (1)
Whats this fascination with Germanic languages
When should you use a sunken client area
Why Under Construction should be made illegal on the web (1)
Why Under Construction should be made illegal on the web
Why cant I use the same tree item multiple times (1)
Why cant I use the same tree item multiple times
Why cant you trap TerminateProcess (1)
Why cant you trap TerminateProcess
Why do some process stay in Task Manager after theyve been killed (1)
Why do some process stay in Task Manager after theyve been killed
Why does icon text get a solid background if drop shadows are disabled
Why was nine the maximum number of monitors in Windows 98
Wrapper templates to make writing callback functions slightly easier

The Old New Thing - 2004 08

Beware of non-null-terminated registry strings
Finished competing in your event Let the games begin
How to set focus in a dialog box
Importance of alignment even on x86 machines part 2
Importance of alignment even on x86 machines
Kernel address space consequences of the 3GB switch
Myth In order to use AWE you must enable PAE
Myth PAE increases the virtual address space beyond 4GB
Myth The 3GB switch expands the user-mode address space of all programs
Myth The 3GB switch lets me map one giant 3GB block of memory
Myth Without 3GB a single program cant allocate more than 2GB of virtual memory
Myth Without 3GB the total amount of memory that can be allocated across all programs is 2GB
Myth You need 3GB if you have more than 2GB of physical memory
Never leave focus on a disabled control
Reading a contract from the other side Application publishers
Spammers look stupid when they dont read the blog they spam on
Summary of the recent spate of 3GB articles
The company picnic sponsored by Microsoft
The curious interaction between PAE and NX
The kooky STRRET structure
The oft-misunderstood 3GB switch
The sociology of the mobile phone
Why all these articles about PAE and 3GB
Why cant you treat a FILETIME as an __int64
Why do some structures end with an array of size 1
Why does Exchange recommend 3GB if you have more than 1GB of physical memory
Why is the virtual address space 4GB anyway
Why shared sections are a security hole
Writing your own menu-like window

The Old New Thing - 2004 12

Alton Brown book tour 2005 Im Just Here for More Food
BOOL vs VARIANT_BOOL vs BOOLEAN vs bool
Computing the size of a directory is more than just adding file sizes
Do you need clean up one-shot timers
Dont save anything you can recalculate
Dragging a shell object part 1 Getting the IDataObject
Dragging a shell object part 2 Enabling the Move operation
Dragging a shell object part 3 Detecting an optimized move
Dragging a shell object part 4 Adding a prettier drag icon
Dragging a shell object part 5 Making somebody else do the heavy lifting
Excellent blog about Windows and Unicode
For all your chicken sequencing needs
How did Windows 95 rebase DLLs
How to get more hits on Google than even Steve Ballmer
How to open those plastic packages of electronics without injuring yourself
It is not illegal to use James Bond style tactics for winning at the roulette wheel
Optimization is often counter-intuitive
Researchers find connection between lack of sleep and weight gain
Scientists come one step closer to the perfect poppy-seed bagel
Sometimes people dont like it when you enforce a standard
The hunt for a faster syscall trap
This Game Boy wont hurt a bit just help the Powerpuff Girls count backwards from ten
Time to dust off your conspiracy theories
Tintin goes to the neurologist
Using fibers to simplify enumerators part 1 When life is easier for the enumerator
Using fibers to simplify enumerators part 2 When life is easier for the caller
Using fibers to simplify enumerators part 3 Having it both ways
What is the purpose of the bmPlanes member of the BITMAP structure
Why are documents printed out of order when you multiselect and choose Print
Why did Windows 95 run the timer at 55ms
Why do I get E_NOINTERFACE when creating an object that supports that interface
Why do dialog editors start assigning control IDs with 100
Why does the system convert TEMP to a short file name
You can create an infinitely recursive directory tree

The Old New Thing - 2005 03

A subtlety in restoring previous window position
A timed context menu
Adventures in product testing Candles that catch fire
Competing to be the worst-dressed couple in America
Confusion over whether you have Windows XP SP1 or SP2
Curling proves itself much more exciting than hockey this year
Dot-Con Job How InfoSpace took its investors for a ride
If you disable dragdrop on the Start menu you also disable right-click
Keep your eye on the code page
Modality part 7 A timed MessageBox the cheap version
Modality part 8 A timed MessageBox the better version
Neuroscience in the service of basketball fans
Performance gains at the cost of other components
Pointers to virtual functions with adjustors
Psychic debugging Why your expensive four-processor machine is ignoring three of its processors
Raymonds random walk from Swedish designers to Mr Monkey
Suggestion Box 2
The CEO-to-English Phrase Book a continuing series from Slate
The bonus window bytes at GWLP_USERDATA
The dialog manager part 1 Warm-ups
The dialog manager part 2 Creating the frame window
The dialog manager part 3 Creating the controls
The great Alaskan ice sculpture
The invisible price reduction
The scratch window
Using SystemParametersInfo to access user interface settings
VegFest 2005 this weekend and vegetarian is as vegetarian does
When a program asks you a question and then gets upset if you answer it
Why does SystemParametersInfo hang when I pass the SPIF_SENDCHANGE flag
Why does the debugger show me the wrong function
Why does the debugger show me the wrong virtual function
Windows NT Security in Theory and Practice
Windows are not cheap objects
Your exception handler can encounter an exception

The Old New Thing - 2005 06

A quick puzzle about security and synchronization
A simple story in pictures
Adam Felber teaches us how to avoid setting off motion detectors
Answer to quick puzzle about security and synchronization
Beware of roaming user profiles
Can you trust the Man on the Street interview
Displaying the dictionary part 1 Naive version
Displaying the dictionary part 2 Using text callbacks
Displaying the dictionary part 3 Using an owner-data listview
Drink at work The blog of a cartoonist
Google is the cute two-year-old girl with curly blond hair that gets all the attention
If strncpy is so dangerous why does Visual Studio 2005 still support it
Ill see some of you in Los Angeles in September
Is there ever such a thing as a good letter from the IRS
Maintaining high standards at the International Frederic Chopin Piano Competition
Perhaps this is what airport security is worried about
Seattle International Juggling Festival 2005
The 2005 Seattle Chicken Tour
The DateTime control panel is not a calendar
Using LARGEADDRESSAWARE on 64-bit Windows for 32-bit programs
What if two programs did this
What is the difference between Unpin from Start menu and Remove from this list
Whats the difference between autocomplete and dropdown history
Why are there broadcast-based mechanisms in Windows
Why cant I get the pixels of a window that isnt visible on screen
Why cant the default dragdrop behavior be changed
Why do Microsoft code samples tend to use ZeroMemory instead of 0
Why do NTFS and Explorer disagree on filename sorting
Why does Explorer eject the CD after you finish burning it
Why does Windows XP SP2 sometimes forget my CD autoplay settings
Why does the CreateProcess function do autocorrection
Why does the Run dialog autocorrect but not the Run key
Why dont control panel programs and property sheets show up in the taskbar
Why dont you ever see a rat vomiting
Why isnt Windows Setup just a disk reimage plus a registry dump

The Old New Thing - 2005 07

Answers to yesterdays holiday fun puzzles
Converting from traditional to simplified Chinese part 1 Loading the dictionary
Converting from traditional to simplified Chinese part 2 Using the dictionary
Converting from traditional to simplified Chinese part 3 Highlighting differences
Dinner at the Herbfarm in Woodinville
Does Windows have a limit of 2000 threads per process
FindFirstFile is not a SQL query
How can I recover the dialog resource ID from a dialog window handle
I hope you werent using those undocumented critical section fields
If InitCommonControls doesnt do anything why do you have to call it
Marin Alsop to be music director of the Baltimore Symphony Orchestra
News flash Going for a walk on a nice day makes you feel better
On paying for your meal upon leaving a restaurant
Some holiday fun Puzzle 1
Some holiday fun Puzzle 2
Some holiday fun Puzzle 3
Some holiday fun Puzzle 4
Some holiday fun Puzzle 5
Some holiday fun Puzzle 6
Some holiday fun Puzzle supplementary material
The Northwest Mahler Festival performs Mahlers Second Symphony Resurrection
The apocryphal history of file system tunnelling
The best book on ActiveX programming ever written
The importance of passing the WT_EXECUTELONGFUNCTION flag to QueueUserWorkItem
Using script to query information from Internet Explorer windows
Watching the game of Telephone play out on the Internet
What are SYSTEM_FONT and DEFAULT_GUI_FONT
What is the deal with the ES_OEMCONVERT flag
What is the difference between WM_DESTROY and WM_NCDESTROY
What is this web site thing you are talking about
What struck me about life in the Republic
Whats the difference between My Documents and Application Data
Whats the point of DeferWindowPos
When Marketing edits your PDC talk description
When the normal window destruction messages are thrown for a loop
Where did the names of the computer Hearts opponents come from
Why does FindFirstFile find short names

The Old New Thing - 2005 08

A ticket to the Windows 95 launch
Adding a lookup control to the dictionary Just getting it on the screen
Adding a lookup control to the dictionary Searching Pinyin
Buying an entire Egghead Software store
Double-clicking radio buttons
Drawing a monochrome bitmap with transparency
Free bicycles to borrow at Marymoor Park
Have you made any assignments in this space
Hey who flattened the hills
Hoping the worst-case scenario doesnt come to pass
How can a company get access to Windows Error Reporting data
How do you convince developers to pay their taxes
How many floppy disks did Windows 95 come on
If you squint you might be able to make out my name
Justifiable assault with folding chair
Lets just make up some dollar values and print them as fact
Marymoor Park summer movie series 2005 is nearly over
Microsoft Company Picnic 2005
On being attacked by a sidewalk
On speaking a particular language in the presence of non-speakers
On the adult appeal of dodgeball
Program names in file type handlers need to be fully-qualified
Rendering menu glyphs is slightly trickier
Rendering standard Windows elements
The dangers of messing with activation when handling a WM_ACTIVATE message
The dangers of playing focus games when handling a WM_KILLFOCUS message
The poor mans way of identifying memory leaks
This might be for real even though it comes out at 7am
Understanding hash codes
Watch out there are Swedes in the hallway
What Ill be doing at this years PDC
What are the access rights and privileges that control changing ownership of an object
What program did you get Danny
Whatever you do dont ask for coffee
When people ask for security holes as features Silent install of uncertified drivers
Why are icons multiples of 8 pixels in width
Why does the Internet Explorer animated logo arrange its frame vertically
Why is Windows Error Reporting nicknamed Dr Watson
Why is processor affinity inherited by child processes
Why is the default console codepage called OEM
Windows 95 crashes a cash register

The Old New Thing - 2005 09

Annoying renditions of the songs of Elvis
Avoiding double-destruction when an object is released
Blackout humor at the 2005 PDC
But I have Visual Basic Professional
COM object destructors are very sensitive functions
Coming to the completely opposite conclusion on Windows versions
Contradictory feedback from my 2005 PDC talk
Corrections to the answers I gave at the end of my PDC talk
Declared unsuitable for minors in Australia Sort of
English Cut Bringing bespoke tailoring into the general consciousness
Fiddling with the fonts part 1 Making the Chinese characters larger
Fiddling with the fonts part 2 Keeping the English font small
Giving fair warning before plugging in your computer
I wont be signing books but dont let that stop you
Kurt would have wanted it that way
Like an invention out of Harry Potter except that Harrys would use a quill
More undocumented behavior and the people who rely on it Output buffers
On objects with a reference count of zero
Please disconnect all cell phones signal watches and pagers
Precision is not the same as accuracy
Raymonds 2005 MVP Global Summit event diary
Reading the output of a command from batch
Richard E Grant as Dr Who
Sorry I missed you all this morning
Spider Solitaire unseats the reigning champion
Ten things I noticed at the 2005 PDC
The DHS television show was all a scam it appears
The Double-E Half Hour of Pain
The double-CtrlAltDel feature is really a kludge
The reverse-engineering of PDC 2005 pass colors
Things to do at Microsoft when the power goes out
This is an unsupported ride so if you stop you will fall over
Typo patrol at the PDC
Understanding the consequences of WAIT_ABANDONED
Why arent low-level hooks injected
Why does the function WSASetLastError exist
Why doesnt Microsoft give every employee a UPS
Why is there no all-encompassing superset version of Windows
Windows Server 2003 can take you back in time

The Old New Thing - 2005 10

Answering the phone a classic rookie mistake
Be careful what you name your product group
Consequences of the scheduling algorithm Low priority threads can run even when higher priority threa
Consequences of the scheduling algorithm Sleeping doesnt always help
Even in the enlightened year of 2005 we have programs that dont handle long file names
Fair Isle Knitters Wanted
Follow-up Portsmouth Spinnaker Tower now open but maybe you should take the stairs
How to recognize different types of sentinel timestamps from quite a long way away
Its like being at the PDC but without the lines or the tote bag
Jensen Harris joins the 7am club
Katamari Damacy The most screwed-up video game ever
Make money working at home in your pajamas and its completely legal
My history of time is briefer than yours
New blog on integrating Groove with Office
New device detected Boeing 747
Newark Liberty International Airport Terminal A travel tips
Night of the Knitting Dead
On the dangers of sharing your apartment
One persons discoverable feature is another persons annoyance
PC Magazine interviews the team behind Windows on its twentieth birthday
Perhaps I like the phrase withered hand a bit too much
Quick and dirty buzzword bingo cards in Excel
Running old programs in a virtual machine doesnt necessarily create a good user experience
Seattle Twenty-Five for 25 November 2005 restaurant list is available
The Halloween-themed lobby
The history of the path separator in Japanese and Korean Windows
The things in the PDC 2005 introductory video
The undeletable Outlook folder
The unfortunate interaction between LOAD_LIBRARY_AS_DATAFILE and DialogBox
Theres something about Rat Poker
Thread affinity of user interface objects part 1 Window handles (1)
Thread affinity of user interface objects part 1 Window handles
Thread affinity of user interface objects part 2 Device contexts
Thread affinity of user interface objects part 3 Menus icons cursors and accelerator tables
Thread affinity of user interface objects part 4 GDI objects and other notes on affinity
Thread affinity of user interface objects part 5 Object clean-up
When programs assume that the system will never change episode 1
Why is it even possible to disable the desktop anyway
Why is the OEM code page often called ANSI
Without a doubt the worlds worst online Swedish lessons
Your profiling tools can manufacture performance issues where there were none

The Old New Thing - 2005 11

Another Schadenfreude-filled look back at the dot-com zaniness
Bicycling from Mercer Island to Microsoft main campus
Blog design as a form of reality programming
Content owners need to review the designer art too
Force-feeding the dogfood
Found blog The Piehole
Hiding from the police Try knitting a sweater
How to get Raymond to stop being interested in talking with you
I didnt see Stephen Hawking in Seattle yesterday
I just have a plain standard-issue guest chair
In real life nobody upgrades their server
Its not a book but its slightly closer
Look what the hurricanes blew into Lafayette LA
Mini-conversations at the stoplight during the bicycle commute
Raymonds review of Pride and Prejudice Keira Knightley version
Sampling every flavor of dogfood in the store
Semaphores dont have owners
Sometimes the fault is not in our stars but in ourselves
Take it easy on the automatic retries
Taxes Geopolitics
Taxes Hierarchical Storage Management
The Airline Screening Playset
The COM interface contract rules exist for a reason
The craft of UI design flowstate
The etymology of the word traffic light
The psychology of naming your internal distribution lists
The worlds worst celebrity recasting of the American version of Harry Potter
This video universally gets one of two reactions
To be a leader you must know when to follow
Välkommen till Saerige
What causes a program to be marked as new on the Start menu
What does the word supported mean
What was Dr Watsons original name
Whats the difference between HWND_TOP and HWND_TOPMOST
When was the last time you formatted a floppy disk
Where does an IT guy from a major hotel chain stay at the PDC
Why is a drive letter permitted in front of UNC paths sometimes
Why is inline autocomplete disabled by default
Why is there a special PostQuitMessage function
Why was GlobalWire called GlobalWire

The Old New Thing - 2006 01

2005 end-of-year link blowout sale
At least theres a funny side to spam
Beware the MSJ subscription scam
Converting between LCIDs and RFC 1766 language codes
Creepy messages in your baggage
Dont underestimate the resourcefulness of people trying to be annoying
France she is how you say on sale
From Doom to Gloom The story of a video game
How air conditioning revolutionized competitive bicycling
I attack the kobold wearing the headdress made of human ears
If one certification is good more must be better
If your callback fails its your responsibility to set the error code
Liquefied NBA points apparently cannot be sold on eBay
On the abuse of properties
Performance consequences of polling
Pumping messages while waiting for a period of time
ReadProcessMemory is not a preferred IPC mechanism
Stephen Tolouses reminiscences of Windows 95 RTM day
Taxes Detecting session state changes such as a locked workstation
Taxes Remote Desktop Connection and painting
The cost of trying too hard Splay trees
The cost of trying too hard String searching
The decoy display control panel
The decoy visual style
The first rule about knit club
The vtable does not always go at the start of the object
The worlds slowest RET instruction
There are two types of rebates and you need to be on the alert
Theres more to calling a function than just getting the types to match
Understanding what things mean in context Dispatch interfaces
Waiting for all handles with MsgWaitForMultipleObjects is a bug waiting to happen
Welcome to the United States unless youre a Canadian technologist who is an invited guest at a Micros
When programs assume that the system will never change episode 3
When web sites rely on security holes
Where do call signs come from
Why did the Windows 95 CD have extra fun stuff
Why do image lists and tool bars use horizontal strips if vertical is so much better
Why do words beginning with home get treated as URLs
Why does a corrupted binary sometimes result in Program too big to fit in memory
Why does the Recycle Bin have different file system names on FAT and NTFS
You can call MsgWaitForMultipleObjects with zero handles

The Old New Thing - 2006 02

Apparently I cant take myself anywhere
Be careful when interpreting security descriptors across machine boundaries
Because programmers were trusted to do the right thing part 2
Beware of redirected folders too
Changing a window class affects all windows which belong to that class
Comparing writing specifications to writing code
Diving into kernel mode with Doron
Enumerating threads in a process
Games give you hand-eye coordination and spatial intelligence together with map-reading skills
How the study of languages influences ones appreciation of international competition
In pursuit of Michael Cassini the king of con
In pursuit of the message queue
Mysterious things Steve Yi has eaten
Not all team integrations go smoothly
Other things people do with beta versions of the operating system
Raymond you so write like a girl
Recycling old PCs and cell phones
Ry Jones seems particularly amused by things Ive written
Shifting from program management to programming also affects your social life
Studs from Microsoft
That 9 you got from the PayPal settlement Taxable income
Thats just super and a note on baking
The Top Gear Winter Olympics 2006
The dangers of sleeping on a UI thread
The military marriage of convenience
The per-class window styles and things really are per-class
The performance cost of reading a registry key
The pornography of food
The symmetric in symmetric multiprocessing really means symmetric
Viewing function composition as transformation of the domain
Why cant I disable the Cancel button in a wizard
Why does my program run faster if I click and hold the caption bar
You cant even trust the identity of the calling executable
You know youre in trouble when your channel loses to dead air

The Old New Thing - 2006 03

A thread waiting on a synchronization object could be caught napping
Basic ground rules for programming function parameters and how they are used
Before you develop a solution make sure you really understand the problem
Betsys interview tip Wear pants
Controlling resource consumption by meting out work items
Das Buch der verrückten Experimente
Diese Briefe wurden von unserem chinesischen Freund übersetzt
How would you solve this compatibility problem Network interoperability
If you ask for a window caption you also get a border
Inadvertently passing large objects by value
Keep your eye on the code page practical exam
Make sure to handle carcinogens safely before inhaling a different carcinogen
Martha Martha Martha
On the alert for expired food-handling licenses
On the fuzzy definition of a Unicode application
Other things happen for a reason too
Public service announcement for Roman Catholics Sunday is not a fast day
Raymond you even pose like a girl
Raymonds highly scientific predictions for the 2006 NCAA mens basketball tournament
Reading the fine print episode 2 Portable headphones
Reading the fine print episode 3 Whats in the bottle
Really college athletics is about education not
Restating the obvious about the WM_COMMAND message
Solving one problem by creating a bigger problem
The ForceAutoLogon setting doesnt do what most people think
The consequences of invalidating the null window
The network interoperability compatibility problem first follow-up of many
The peculiar appeal of the Baseball Uncyclopedia
The rise and fall of the German language
The simplified office
The social skills of a thermonuclear device part 2
Top ten things to do to make your application a Vista application
Very late remarks on the original Chinese dictionary series
Where technology names came from WiFi and FireWire
Why are there two copies of Notepad
Why does the size of a combo box include the size of the drop-down
Why does the version 6 animation control not use a background thread
Why doesnt Windows File Protection use ACLs to protect files
Why doesnt the window manager just take over behavior that used to be within the applications purview
Why is there no message for disabling the Cancel button on a wizard
You never know until you test it with real users

The Old New Thing - 2006 04

A new scripting language doesnt solve everything
Adding a new flag to enable behavior that previously was on by default
Adding flags to APIs to work around driver bugs doesnt scale
Be very careful if you decide to change the rules after the game has ended
Chain tax preparers do not fare well in undercover investigation
Computing over a high-latency network means you have to bulk up
Correctly spell xerophthalmia and the crowd goes wild
Doing the best we can until time travel has been perfected
German adjectives really arent that hard they just look that way
Grace period for Swedish currency conversion extended to the end of the year
How to fill in that number grouping member of NUMBERFMT
Ich habe meinen Computer zu Deutsch gewechselt
Its more efficient when you buy in bulk
Locale-sensitive number grouping
Maybe you dont sound like Carl Kasell but you can have his job
Merchandise your food with pride
More about the house in front of Microsofts RedWest campus
News for dummies in French and English
News for dummies now available in podcast form
No good deed goes unpunished Bug assignment
No really you need to pass all unhandled messages to DefWindowProc
Sometimes you just have to make a snap decision
Spamming the event log doesnt make things any better
The 20062007 Seattle Symphony subscription season at a glance
Then again it might not be overclocking after all
Troubleshooting tips are not formal product documentation
USER and GDI compatibility in Windows Vista
What does CS_SAVEBITS do
What seventh-grade students want to be when they grow up
Whats the deal with the house in front of Microsofts RedWest campus
Where did startcom get its name
Where did the name for Microsoft Access come from
Why is the Microsoft Protection Service called msmpsvc
Youd think itd be easy to give away a ticket to the symphony

The Old New Thing - 2006 05

A cache with a bad policy is another name for a memory leak
Assaulting users with dialog box after dialog box
Automatic messages when youre not in the office the infamous OOF
Beware of digits before the redirection operator
Beware the C implicit conversion
Command line redirection is performed by the command line interpreter
Do it for Katie
Doing quick arithmetic from the command prompt
Dont mention the war I mentioned it once but I think I got away with it all right
Every discipline has its crackpots Stories of mathematics
How do I write a regular expression that matches an IPv4 dotted address
It rather involved being on the other side of this airtight hatchway
Making up new Winter Olympic events
Mellifluous NPR reporter name Ofeibea Quist-Arcton
On languages and spelling
On the bogusness of reporting the winning word in a spelling bee
People are very sensitive to how the icons look
Raymond 1 Sidewalk 1
Raymond makes a psychic prediction for 2006
Redirecting output can result in altered program behavior
Seattle boating season opens but never closes
Solutions that dont actually solve anything
Subtle ways your innocent program can be Internet-facing
That mysterious J
The alertable wait is the non-GUI analog to pumping messages
The first word on the command line is the program name only by convention
The real scoop on the the x64 calling convention on 64-bit Windows
The redirection operator can occur in the middle of the command line
Tips from an American on on driving in Taiwan
Using Yoda on an x86 may be hazardous to your systems health
What can I do with the HINSTANCE returned by the ShellExecute function
Whats so special about bitmaps and DCs
When people mimic the display rather than the actual data
Why doesnt Ethan Hunt have to wear identification
Wordplay the movie

The Old New Thing - 2006 06

so it doesnt poop all over your office
2006 mid-year link clearance
A single-instance program is its own denial of service
An auto-reset event is just a stupid semaphore
Announcements on the ferry one self-explanatory one not
Apparently driving is messed up in a lot of countries
Coding in-place tooltips
Congratulations Montréal on finally paying for the 1976 Olympic Games
Disaster averted thanks to undisclosed government action no really
Fumbling around in the dark and stumbling across the wrong solution
Generating tooltip text dynamically
If youre going to try to simulate user actions make sure the user can do them
Its a good idea to get somebody who knows the language to be your proofreader
Its still not a democracy but at least other people have noticed too
Lies and statistics 600000 Chinese engineers
Look who bought my name
Multiplexing multiple tools into one in a tooltip
Pitfalls of transparent rendering of anti-aliased fonts
Psychic debugging Understanding DDE initiation
Remember what happens when you broadcast a message
The continuing phenomenon of size inflation in fast food
The forgotten common controls The MenuHelp function
The forgotten common controls The page scroller
The subtle usability considerations of conference nametags
Three-Minute Masterpieces 2006
Understanding what significant digits really mean
Using custom-draw in tooltips to adjust the font
What does the CS_CLASSDC class style do
What does the CS_OWNDC class style do
What happened to the traffic circle at the corner of 156th Ave NE and NE 56th Way
Why cant you programmatically reorder the items on the Start menu
Why cant you say in a script block
Why did the Add or Remove Programs control panel try to guess all that information
Window class properties apply to all windows that belong to the class

The Old New Thing - 2006 07

Before you can learn to recognize whats wrong you must learn to recognize whats right
Buy me some peanuts and a set of double-pointed 2s
Calling an imported function the naive way
Christmas gift idea for your favorite glasses-wearing geek
Exported functions that are really forwarders
Floyd Landis stuns everybody on stage 17 Raymond less impressive
Glass houses are great places to throw stones
Handy tip If youre going to break into vehicles the police vehicle service center is probably a bad p
How a less naive compiler calls an imported function
How are DLL functions exported in 32-bit Windows
How do you use the bike rack on a Metro bus
How were DLL functions exported in 16-bit Windows
How were DLL functions imported in 16-bit Windows
I didnt realize that it was International Group B Strep Awareness Month
If you know German the world is well slightly more confusing
Index to the series on DLL imports and exports
Is the maximum size of the environment 32K or 64K
Issues related to forcing a stub to be created for an imported function
Just because I dont write about NET doesnt mean that I dont like it
Mr T prefers a double-shot of espresso with two graham crackers go figure
Names in the import library are decorated for a reason
Nearly 20 percent of daily smokers say they exercise three or more times a week
News flash Big houses have bigger heating bills
No really why is it 16031
Not everybody with a non-Windows partition type is a geek
Pidls and monikers do roughly the same thing just backwards
Raise la lanterne rouge
Real Madrid ie proper football comes to Seattle
Retail companies allegedly not collecting personal information as aggressively
Rethinking the way DLL exports are resolved for 32-bit Windows
Security Dont forget to initialize the stuff you dont care about
The Seattle Monorail has two trains and they collided
The day the peloton lost its way
The efficiency of ordinal-based imports while still being name-based
The traffic gods are punishing me for bicycling
Things Ive written that have amused other people Episode 2
Wenn Ausländer Deutsch phonetisch singen
What happens when you get dllimport wrong
Win 5000 every summer for life some restrictions on your life apply

The Old New Thing - 2006 08

6 days since last monorail breakdown
A look inside WinInets indexdat file and changes in IE7 and Vista
A modest proposal On allowing mobile phones on airplanes
Accessibility is not just for people with disabilities
Applications and DLLs dont have privileges users do
As I recall Germany did not ratify the United States Constitution
C nested classes are like C nested classes not Java inner classes
Candidate for most obscure keyboard shortcut ShiftF8
Computer monitors float screen upwards
Cool web site Bill Monk
Do not change program semantics in the debug build
Dont trust the return address no really
Environment variable expansion occurs when the command is read
Even more about C anonymous methods from the source
Exploiting the inattentive episode 2 The unlabeled line
How did Start Me Up become the theme for the Windows 95 launch
How do you wash soap
How were window hooks implemented in 16-bit Windows
If you work at a company its not your computer any more
Moving a file does not recalculate inherited permissions
News Flash Big houses also cost more to cool
One way people abused hooks in 16-bit Windows
Raymonds excursions into East Asian pop music episode 2 China Dolls 中國娃娃
Space scientist James Van Allen 19142006
Sucking the exception pointers out of a stack trace
The cultural anthropology of getting on a bicycle
The day Tullys ran out of coffee
The dialog class goes under the sneaky name WC_DIALOG
The implementation of anonymous methods in C and its consequences part 1
The implementation of anonymous methods in C and its consequences part 2
The implementation of anonymous methods in C and its consequences part 3
The wisdom of seventh graders Contributions to class discussion
Those folks from Birmingham talk funny and I mean that in a scientific way
Try to avoid having BOOL function parameters
We encourage everyone to pack gel-filled bras in their checked baggage
We know its insecure but we want to do it anyway
Who says theres only one There can be more than one logon session
Why cant I see all of the 4GB of RAM in my machine
Why does SetWindowsHookEx take an HINSTANCE parameter

The Old New Thing - 2006 09

Allocating and freeing memory across module boundaries
Const pointers Logical consequences
Disaster averted thanks to international time zones
Dont forget to unregister your window classes when your DLL shuts down dynamically
Eating Belgian food at Brouwers Cafe in Fremont
Filming for The Battle in Seattle has begun
Grammar review Verbparticle versus compound noun
Hand gestures for numbers
I think Ive just broken the internet
If you ask a YesNo question make sure the user also knows what happens when they say No
If you dont trust your administrators youve already lost
In case of fire go to lunch
IsBadXxxPtr should really be called CrashProgramRandomly
Isnt DDE all asynchronous anyway
It is as if our leaders have not been educated in orbital space colonization
Its that season again The Microsoft Company Meeting
Just change that 15 to a 1
News flash The heart produces urine
On the unanswerability of the maximum number of user interface objects a program can create
Philosophical discussion on when to mark a method as virtual
Project Update 2 Voyage to Our Hollow Earth
Quotation marks around spaces arent necessary in the PATH environment variable
Raymonds excursions into East Asian pop music episode 3 Morning Musume モーニング娘
Saturday is Museum Day courtesy of Smithsonian Magazine
Sometimes my psychic powers are weak
The danger of using boldface for Chinese characters
The lost follow-ups Products and people that appear to have vanished without a trace
The tale of the radioactive Boy Scout
Things you already know How do I wait until my dialog box is displayed before doing something
Turns out you cant learn Mandarin Chinese by watching television
Waiting until the dialog box is displayed before doing something
What you dont apologize for is as important as what you do
When you crash make sure you crash in the right place
Why doesnt the Shutdown dialog use Alt to get alternate behavior
You already know what your target architecture is or at least you should
You have to free memory with the same allocator that allocated it Logical consequences
Youre white Do you want to be in my friends soap opera

The Old New Thing - 2006 10

640 x 480 is still not dead
A very brief return to part 6 of Loading the ChineseEnglish dictionary
Answering phones at KUOW for their Fall 2006 pledge drive
Any similarity to actual German or Swedish words is purely coincidental
Dead Sea Scrolls lectures available online or in person if you can get there
Does a dual-core processor count as one or two for licensing purposes
Dont require your users to have a degree in philosophy
For a brief shining moment DirectX was more popular than another word that ends in x
How Raymond learns languages and why its not working
How do I prevent multi-line edit controls from eating the Enter key
How do I shut down a workstation via Remote Desktop
If only hed known to offer to back up their PC instead
Invalidating the null window redux
Let the dead computer scavenging commence
More tales of dead computers My home desktop
No good deed goes unpunished part 2
Non-resolution of the dead home desktop problem
Now it looks like I speak far more languages than I actually do
Offline mode silently prevents you from streaming media content
Proto-Microspeak The goat rodeo
Psychic debugging Why doesnt my program show up when I call ShellExecute
Quick and dirty Halloween costume for physics geeks
Raymonds excursions into East Asian pop music episode 4 Yuki
Separated at birth The Windows XP SP2 launch team
Shifting fortunes at Airbus over the A380
So thats what daddy does at work
The great Polish Sea -or- We forgot Poland
Theres a reason why envelopes have backs
What does the letter T in LPTSTR stand for
When something is available for the user which user are we talking about
Why cant I get my program to use more than 50 of the CPU
Why do I see the same fake names in Microsoft samples over and over
Why does Windows hide keyboard accelerators and focus rectangles by default
Wired Magazines report on that bizarro Ferarri crash
You can invent new adjectives too
Руками не трогать

The Old New Thing - 2006 11

A fork is an easy-to-find nonstandard USB device
A modest proposal Solving the problem of steroids in baseball
Aspiring to the wrong office on election day
Blitting between color and monochrome DCs
Converting an HRESULT to a Win32 error code Diagram and answer to exercise
How do I convert an HRESULT to a Win32 error code
How do I test that return value of ShellExecute against 32
I bet somebody got a really nice bonus for that feature
It takes only one program to foul an upgrade
It took two of us to keep up with one Bob
Its not surprising at all that people search for Yahoo
Keeping classic hardware alive through emulation
Make sure you disable the correct window for modal UI
Manipulating the DIB color table for fun and profit
New dessert lounge Coco la ti da
On the importance of backwards compatibility for large corporations
Paradoxically you should remove the smart card when logging on with a smart card
Placebo setting QoS bandwidth reservation
Sometimes you need to recalibrate your progress reports
The quiet dream of placebo settings
The window manager moves the mouse applications choose the cursor
Theres going to be an awful lot more overclocking out there
Tonya and Nancy The Opera
Using DIB sections to perform bulk color mapping
What do bitwise operations mean for colors
What is the process by which the cursor gets set
What went wrong in Windows 95 if you use a system color brush as your background brush
Why cant you use the Tab key to select items from the auto-complete drop-down

The Old New Thing - 2006 12

2006 end-of-year link clearance
A high waiter count on a free critical section may indicate a lock convoy
Computing listview infotips in the background
Displaying infotips for folded and unfolded listview items
Do not overload the E_NOINTERFACE error
Do not write in-process shell extensions in managed code
How do I find all files with at least one space in their name
I bet somebody is looking to get a really nice bonus for that feature Attention
I cant believe they actually cant think of a name for the recent storm
If you let people read a file then they can copy it
Jeanne Martinet teaches you how to survive a party where you dont know anybody
Linda Hunts advice for Oscar-winners
Maybe if it had characters and stuff and different levels it would be OK
Nailing down what constitutes valuable consideration
Okay I changed my mind I wrote a book after all
Pacific Northwest storm recovery continues
Some call it context others call it reference data but whatever it is its yours
Stop the madness Subdirectories of My Documents
The Old New Thing book will also be available electronically
The evolution of version resources 16-bit version resources
The evolution of version resources 32-bit version resources
The evolution of version resources corrupted 32-bit version resources
The first parameter to VerQueryValue really must be a buffer you obtained from GetFileVersionInfo
The name WinMain is just a convention
The social skills of a thermonuclear device part 3
The unanswered Explainer questions
The wisdom of seventh graders What to do with a time machine part 1
The wisdom of seventh graders What to do with a time machine part 2
The wisdom of seventh graders What to do with a time machine part 3
Throwing things into a blender and seeing what happens
What does an invalid handle exception in LeaveCriticalSection mean
Why do user interface actions tend to occur on the release not on the press

The Old New Thing - 2007 01

2006 storm aftermath A look back
Article of clothing or tasty dessert
Crackpots in computer security A complete solution to computer security
Does Microsoft internally use MFC for writing Windows apps
Email tip Choose a subject line that is meaningful to the recipient not to the sender
EnumChildWindows already enumerates recursively
How a bullet turns into a beep
How do I load an entire file into a rich text control
How do I print the contents of a rich text control
How do I put more than 32000 characters into a rich text control
Iced-over roads people who cant drive very expensive and dangerous game of billiards
If vertical strips are better why do toolbars use horizontal strips
If you ask an author to sign a book you have to tell himher what to write
Ken Levine teaches us about television script writing
Non-psychic debugging If you cant find something make sure youre looking in the right place
Not my finest hour Where are my keys
One Armstrong 135 mph
Should all windows appear in the taskbar
The MAXMEM switch doesnt set the maximum amount of memory Windows will use
The cost of continuously-visible affordances with dynamic states
The family technical support department Everything is Outlook
The history of the RichEdit control from Murray Sargent
The real underground and subway
The undeletable Outlook folder episode 2
The wisdom of sevHHHeighth graders It was not just white people who were helped by Martin Luther King
Unexpected consequences of writing a book Public appearances
Unusual uses for a ball-point pen Breaking into the debugger
Wait but why can I GetProcAddress for IsDialogMessage
Walking through packed snow and ice with a little more confidence
What does the fCreate parameter to SHCreateStreamOnFileEx mean
What triggers the recall of an offline file
Whats a character
Where did the Windows Vista wallpaper images come from
Why cant I GetProcAddress for CreateWindow
Why do property sheets sometimes take a first-chance exception

The Old New Thing - 2007 02

Another retired computer The Alpha Rawhide
Bonus material for The Old New Thing the book is now available for download
Crush Finder experiment gets off the ground at Princeton
Do I need rush processing Beats me
Email tip Barry Leiba expounds on subject lines
Email tip Dont add people to a thread without saying why
Final remarks on LockWindowUpdate
How hard could it be Must provide own garage
How is LockWindowUpdate meant to be used
How to get your laptop to resume from standby in under two seconds
I wouldnt be surprised if O J Simpson wrote a new book
Long Zheng interviews Hamad Darwish about those Windows Vista wallpapers
Maintaining standards of Japanese food abroad
Mandarin Chinese gaining popularity in public schools
More Vista wallpapers from Hamad Darwish
News flash Professional athletes do it for the money
Performance evaluation euphemisms invading everyday speech ironically
Please feel free to stop using DDE
Public service announcement for United States taxpayers In tax year 2006 you can claim a 30 refund if
Super Bowl Sunday The day the entire country stops doing anything
Technology hypochondriacs
The 20072008 Seattle Symphony subscription season at a glance
The ironic thing about fixing a bug
The network interoperability compatibility problem second follow-up
The politicians fallacy and the politicians apology
The publicity machine doesnt stop TechNet podcast interview
Theres not much luggage space unless you dump the snow
What does LockWindowUpdate do
What does an NMI error mean The infamous Hardware Malfunction
Who is most likely to be awarded a MacArthur Fellowship
Why cant I create my dialog box Rookie mistake 1
Why cant I create my dialog box Rookie mistake 2
Why cant you set the command prompts current directory to a UNC
Why did Explorer say The target you specified is on the desktop
Why does my property sheet blink and the immediately disappear
Why doesnt the window manager unregister window classes when the owning DLL unloads
Why dont I use any class libraries in my sample code
With what operations is LockWindowUpdate meant to be used
With what operations is LockWindowUpdate not meant to be used

The Old New Thing - 2007 03

Dont be so fast to discount those oddball time zones
Dont require your users to have a degree in philosophy episode 2
Email tip Dont forget to ask your question
Excursions in composition Adding rewind support to a sequential stream
Excursions in composition Sequential stream concatenation
Hiding files is not the same as protecting them
How do the menu functions find items
How to talk like Marketing The awareness space
I bet somebody is looking to get a really nice bonus for that feature Uninstall
If you have to ask youre probably doing something wrong
Its official its the Hannukah Eve Storm of 2006
Just what the world has been wishing for Surströmming ice cream
Microspeak Calibration
Microspeak Sit in it
News flash Snacks at the theater concession stand are not good for you
On the effect of dandruff on climate
Out there gathering map data one intersection at a time
Passing by address versus passing by reference a puzzle
Public service announcement for Seattle area taxpayers Some transit taxes can be itemized and deducte
Raymonds highly scientific predictions for the 2007 NCAA mens basketball tournament
The Default user is not the default user
The GETDISPINFO notifications tell you what information they want
The buffer size parameter to GetFileVersionInfo is the size of your buffer no really
The early stages of Joshua Roman groupie-dom
The format of accelerator table resources
The only thing you can do with display names is display them
The publicity machine continues A chat with Scott Hanselman and Hanselminutes
The social skills of a thermonuclear device part 4
The wisdom of seventh graders John Locke and influential persons
The wisdom of seventh graders and you Design a course
Things Ive written that have amused other people Episode 3
This American Life What I Learned From Television Seattle edition
Verizon backs down on made-up fees and then adds them anyway
West Bank Story the movie that sells itself in five seconds
What do the colors in the elevation dialog mean
What is a SM_SLOWMACHINE
What was the first parameter to CoInitialize used for
Why are there both TBSTYLE_EX_VERTICAL and CCS_VERT
You dont know what you do until you know what you dont do

The Old New Thing - 2007 04

Changes to power management in Windows Vista
Code is read much more often than it is written so plan accordingly
Email tip People didnt answer your first email for a reason
Enjoy our Bluetooth devices with a glass of beer or wine Bluetooth device optional
Everyone should have a house pianist
Given a choice between two options you influence the result by adding a third inferior alternative
Groundwork being laid for Vladimir Putin to run for his fourth term out of a maximum of two
His lips are moving In order to serve you better
How much time does it take for a pedestrian to cross the street
Identifying an object whose underlying DLL has been unloaded
News Flash Not being able to watch Jay Leno is not an emergency
No farting please were Americans
Oh no I have an obstructed view of Joshua Roman
On the enduring appeal of Walker Texas Ranger
Perhaps the movies made too literal a translation
Psychic debugging When reading unfamiliar code assume its mostly correct
Psychic debugging Why you cant control page navigation when using PSP_DLGINDIRECT
See the Seattle Symphony on television in high definition
Stupid debugger tricks Calling functions and methods
The Notepad file encoding problem redux
The default verb is not necessarily open
The format of bitmap resources
The intermediate value theory helps your table but not necessarily your beer
The wisdom of seventh graders Designing an elective course
Theres something about Christopher Walken
Trivia Pea marble dime nickel quarter half dollar walnut
Using the gu debugger command to find the infinite loop
What is the default version of a header file
What is the default version of the shell common controls
What is the underlying object behind a COM interface pointer
Whats the difference between WINVER _WIN32_WINNT _WIN32_WINDOWS and _WIN32_IE
Whats the row of numbers on the copyright page of books
When very young children try too hard to act nonchalant
Why cant I display a tooltip for a disabled window
Why do operating system files still adhere to the old 83 naming convention
Why does my thread pool use only one thread
Why doesnt the taskbar return to its original size when I return my settings to their original values
Your chance to meet Raymond if you are near Palo Alto on the 23rd

The Old New Thing - 2007 05

Another chapter in Swedish political hypocrisy 2007 edition
Being nominated for the Nobel Prize isnt as big a deal as it sounds
But theyre not puts on sunglasses going to get away with murder
Command lines need to be quoted paths dont
Cool theyre using Roman numerals
Das Leben der Anderen
Dont be helpless At least look at the function youre using
Dont be helpless I dont know anything about MFC modal loops but unlike some people Im not afraid to f
Dont drive your pick-up onto the roof of a house especially if well read on
Drag and drop is a general purpose transfer model not exclusive to Explorer directories
Email tip Dont ask the same question multiple times in different groups
Evergreen Philharmonic Baroque Festival 2007
Get Sea-Tac flight information including gate and baggage claim via email
Getting in on the action while its still there
How my lack of understanding of how processes exit on Windows XP forced a security patch to be recall
Lets talk like people
Male perceptions of body image in Taiwan
Metromint What were they thinking
Microspeak Operationalize
Microspeak The forcing function
Performing an operation in each subdirectory of a directory tree from batch
Please refer to the instructions that dont exist
Psychic debugging Why does FormatMessage say the resource couldnt be found
Quick overview of how processes exit on Windows XP
Raymonds SIFF schedule 2007
Revelations of My Friends An ancestor of todays Mad Libs
Service required Brewer error
Session 0 isolation Where backward compatibility loses to security
Store Wars and the Meatrix
Suggestion Box 3
The administrator is an idiot
The old-fashioned theory on how processes exit
The parameters to PostQueuedCompletionStatus are not interpreted
The sad predicament of the unempowered manager
The three things you need to know about tsunamis
The unidentified award
Two web sites that read the fine print
Unexpected consequences of self-checkout
Visual C 2005 will generate manifests for you
We should just get rid of that stupid middle tier
Were all in this together No good deed goes unpunished redux
Why are console windows limited to Lucida Console and raster fonts
Youd think questions about underwear were understood to be off-limits
Youre not my manager so Im not going to ask how high when you tell me to jump

The Old New Thing - 2007 06

2007 mid-year link clearance
Choosing a provocative debug signature
Compatibility constraints of the water cooler
Death at a Funeral Cashback and Tell No One
Dont forget to pass the current directory along with the command line to your single-instance program
Einstein the geographer A hoax
Email tip Lay off the massive email signatures
Even advanced users liked the Windows XP Start menu
How do I inflate a bicycle tire with a potato
How does the Windows XP Start menu decide that a program is newly-installed
How not to prepare for the STP 2007 edition
I never thought of it before but drumming is a metaphor for life
I took the Monorail to the Shadow of the Moon
If its optional then dont make it mandatory
If you pin a program it doesnt show up in the frequently-used programs list
Im pretty sure hes going to be the envy of his next school reunion
In order to serve you better Frequent flyer miles expiring sooner
Inserting as many layers between the message and reality as possible
Its official The logo for the London 2012 Olympic Games is hideously ugly
More Start menu fine-tuning Choosing a better representative for a frequently-run program
Overheard conversation in the cockpit that you might not want to have heard
Points are earned by programs not by shortcuts
Project Update 3 Voyage to Our Hollow Earth
SIFF reviews Falling 2 Days in Paris Hula Girls
Super watch episode 2
The New York City Profit Calculator
The Thing Mystery of the desert
The meaning of a red traffic light is open to interpretation
The program doesnt have to be run from the Start menu to earn Start menu points
Theres no point improving the implementation of a bad idea
Those who do not understand the dialog manager are doomed to reimplement it badly
What determines which programs show up on the front page of the Windows XP Start menu
What is the impact on the Start menu of long-running programs
What is the international sign for you left something on the roof of your car
What other programs are filtered from the Start menus list of frequently-used programs
Whats all this stuff hanging from that utility pole
Why do DLGC_WANTALLKEYS and DLGC_WANTMESSAGE have the same value
Why does a new user get stuff on their Start menu right off the bat
Why does canonical order for ACEs put deny ACEs ahead of allow ACEs
Why the Fantastic 4 Human Torch ATV is the Worst Movie Tie-In Toy Ever
shopautodotca seocontest online contest tacitly encourages comment spam

The Old New Thing - 2007 07

A modest proposal Solving the problem of traffic in Seattle caused by sporting events
Apparently some people consider this a vacation I consider it insane
Creative armed robbery defense Political asylum
Dont just grab the foreground window and host UI on it
Food products that are offenses against nature Fast Franks
Holidays for fireworks and generally blowing up stuff from around the world
How are window manager handles determined in 16-bit Windows and Windows 95
How are window manager handles determined in Windows NT
How do the names in the file security dialog map to access control masks
How to check for errors from SetFilePointer
I just discovered that the Scandinavian Gift Shop in Ballard is closing
I was sort of interested at first but now Im not so sure any more
If the system says that an embedded string could not be converted from Unicode to ANSI maybe its tryi
If you read any book about traditional weddings in Russian history there must be a fight
If you want a modeless dialog then create a modeless dialog already
Image File Execution Options just inserts the debugger in front of the command line
It rather involved being on the other side of this airtight hatchway If they can run code then they c
Its not enough to say that something is bad you have to say what would be better
Just because you say something in my presence and I dont raise an objection doesnt mean that I agree
Not my finest hour Driving a manual transmission
QueryPerformanceCounter is not a source for unique identifiers
Raymonds tips on selecting a memorable greeting card
Redmond Derby Days 2007 this weekend
Screwing the computer parts back together is the most dangerous step
Seattle street signs for sale used but for ten bucks you cant complain
Seattle to Portland STP 2007 trip report part 1 of 4 Seattle to Spanaway
Seattle to Portland STP 2007 trip report part 2 of 4 Spanaway to Toledo
Seattle to Portland STP 2007 trip report part 3 of 4 Toledo to St Helens
Seattle to Portland STP 2007 trip report part 4 of 4 St Helens to Portland and beyond
Stuart Stevens takes performance-enhancing drugs in order to see what they do
That leaves more hot German babes for me
The audacity of selling things that dont belong to you
The conversations backstage at computer Go tournaments
The dangers of conversation fragments Overheard on the Burke-Gilman trail
The forgotten common controls The ShowHideMenuCtl function
The real cost of compatibility is not in the hacks the hacks are small potatoes
Theres a whole Internet out there folks you might want to check it out
Those who do not understand history are doomed to repeat it on YouTube
Tips for doing the Seattle to Portland STP in two days What I learned in 2007
What is Daves frame class
What is the lpdwHandle parameter in GetFileVersionInfoSize used for
Why is the limit of window handles per process 10000
You dont optimize for the case where somebody is mis-using your system

The Old New Thing - 2007 08

Airport travel tip LAX Terminal 6 United
At last you can turn off the USB 20 balloon
Bowling coming to Bellevue and given the location its naturally upscale
But now Ill never know which politician that alien backs for the next election
C static constructors are called on demand not at startup
Disclaimers and such
Do you have a Starbucks name
Email tip I dont have my bug numbers memorized
Follow-up Mysterious Dietrich identified from that bizarre Ferarri crash
Footnotes in Win32 history VLM Very Large Memory support
For 15 you can purchase incorrect information and to prevent people from getting it you have to renew
Freudian typo Enchanced metafiles
How do I get the handle of the primary monitor
Is this the normal way of comparing toilets
It rather involved being on the other side of this airtight hatchway Executable corruption
It was not one of Explorers design goals to provide a Turing-complete interface for bulk file renamin
Just because youre a control doesnt mean that youre necessarily inside a dialog box
Kernel handles are not reference-counted
Martina Navratilovas final Wimbledon appearance and this time she means it
Math is hard lets go shoppoops
Microspeak FMLA
Microspeak Value proposition
Nested fly-out menus are a usability nightmare
Note to locals Lincoln Center is in New York City not Bellevue
One would be hard pressed to find a group of characters more in need of a lawyer
Probably the most expensive Harry Potter viewing Ill ever attend
SIFF 2007 wrap-up Grandhotel The Boss of It All Vacation
Somebody actually took the time to translate my book into Japanese it appears
The Great Muffin Heist of 07
The Internet Explorer pop-up blocker follows guidelines not rules
The Northwest Mahler Orchestra presents Messiaens Turangalîla Symphony
The Radioactive Boy Scout is back in the news
The truth about 429 the government doesnt want you to know
Things Ive written that have amused other people Episode 4
Were all in this together Maintaining common tools
What are these spurious nop instructions doing in my C code
What are these strange cmp ecx ecx instructions doing in my C code
What happens at LL Bean at three in the morning
What is the difference between the Folder and Directory and other special progids
What is the order of evaluation in C
When you copy a folder why are the contents merged with the existing contents
Which Windows font is named after a tabloid headline
Why is the blogs subtitle Not actually a NET blog
Windows Vista has more extended options on the context menu
With a new Start menu come new keyboard shortcuts
Yes indeed all Microsoft files are or should be digitally signed

The Old New Thing - 2007 09

2007 Museum Day courtesy of Smithsonian Magazine
2007 Q3 link clearance Microsoft blogger edition
Another type of misplaced apology Apologizing for not knowing the penalty
Astrologers struggling with reclassification of Pluto
Belated follow-up Mike Goodspaceguy Nelson running for public office again
Does creating a thread from DllMain deadlock or doesnt it
Find the Flowers vs Minesweeper
How do I put a different wallpaper on each monitor
I mean come on these are laptops
If control-specific messages belong to the WM_USER range why are messages like BM_SETCHECK in the sys
If your theory is build it and they will come you have to make sure there is a they
It rather involved being on the other side of this airtight hatchway Elevation to administrator
Its that season again The 2007 Microsoft Company Meeting
Japanese street fashion reaches Finland
Knock knock Whos there Not you any more
Making some statements and asking for advice isnt a question
Microspeak Going forward
Nearly everybody has a 500 flashlight
Playing the hippie poetry game for four cents per line
Snatching defeat from the jaws of victory now more popular than vice versa
Sometimes it feels like the effort isnt even appreciated
The Microsoft Cafeteria Tour Redmond 2006 Edition
The Minimalist Jukebox Festival
The code page on the server is not necessarily the code page on the client
The first day at Microsoft A fender-bender
The wisdom of seventh graders A Wrinkle in Time
Volunteers help save fruit from home fruit trees from going to waste
Wayback machine The Fake Job
What do I do with per-user data when I uninstall
What happens if you pass a source length greater than the actual string length
Whats the BS_PUSHLIKE button style for
Whats the difference between EM_UNDO and WM_UNDO
Whenever there is a coordination problem somebody says Hey lets create a process
Why did the shortcut template change in Windows Vista
Why is my delay-rendered format being rendered too soon
Why isnt QuickEdit on by default in console windows

The Old New Thing - 2007 10

Another celebrity knitter Tracey Ullman
Dont assume the first person to run your program is an administrator
Email tips from Adam Phillabaum
How do I delay the automatic logon process
If you pass enough random numbers eventually one of them will look valid
It rather involved being on the other side of this airtight hatchway Local execution
Microspeak Actionable
Nicolas Bourbaki perhaps the biggest inside joke in mathematics
No good deed goes unpunished Free code samples
Not the best way to start out a form letter
Other problems traced to violating COM single-threaded apartment rules in the shell
Suggestion Box 3 short answers part 1 of who knows how many
Superstition Why is GetFileAttributes the way old-timers test file existence
The Acorn Wand key to a magical puzzle hunt
The King County Council race gets even stranger
The best way to process Unicode input is to make somebody else do it
The dangers of taking a service droid off script
The early days of the Microsoft cafeterias
The most important choice in writing is not what you say its what you dont say
The perils of translating words blindly without verifying them in context
The three tiers of a mixing room of a movie studio
The wrong way to check whether the mouse buttons have been swapped
Unlikely excuses A faulty microchip
Whats the deal with the EM_SETHILITE message
Whats the difference between LVM_HITTEST and LVM_INSERTMARKHITTEST
Where did WiX get its name
Which windows appear in the AltTab list
Whose idea was it to make CtrlBackspace delete the previous word
Why arent shortcuts as easy as unix links
Why does ICE16 complain about product names longer than 63 characters
Why doesnt Explorer show recursive directory size as an optional column
Win32 user interface work is inherently single-threaded
You cant change it but you can hide it and add something that looks like it

The Old New Thing - 2007 11

Alternate theories on how Putin can retain power after his second term expires
Amusing bug reports On poetry and prose
Buy an island or a country or at least a replica of one
Darkon A Larping Documentary
Dreyers Berry Rainbow Sherbet
Hidden gotcha The command processors AutoRun setting
Hotkeys involving the Windows logo key are reserved by the system
I dont know what the Lotus internal clipboard formats are either
If you want a menu that shows the contents of the My Computer folder you already know how to do it
Im going to keep trying on size fours until I find one that fits
In Windows XP even when DEP is on its still sometimes off
Is DEP on or off on Windows XP Service Pack 2
Proto-Microspeak Pre-envisioning
Psychic debugging IP on heap
Sounds about right What a geek does with an iPhone in the first two days
Staying on top of things with timely updates in separator pages
The first day at Microsoft Dont just stand there
The forgotten common controls The GetEffectiveClientRect function
The importance of the FORMAT_MESSAGE_IGNORE_INSERTS flag
VirtualLock only locks your memory into the working set
What to do when the steering column is stuck and the ignition wont turn
When in doubt consult the online Magic 8 Ball
When you compress a drive some files are exempted but you can force it and then its your problem
Who would win in a fight between a penguin and a lemur
Why are INI files deprecated in favor of the registry
Why do we even have the DefWindowProc function
Why does GetDiskFreeSpaceEx return the wrong amount of free space
You even have to watch out for your placeholder bitmaps
You just have to accept that the file system can change

The Old New Thing - 2007 12

2007 year-end link clearance
Am I for real or just a robot part 2
AppInit_DLLs should be renamed Deadlock_Or_Crash_Randomly_DLLs
Book review Advanced Windows Debugging Mario Hewardt and Daniel Pravat
Christmas lights in the Dyker Heights neighborhood
Consequences of the scheduling algorithm Low priority threads can take 100 CPU
Exploiting the inattentive episode 3 Confusing movie titles
How did wildcards work in MS-DOS
How do 16-bit programs start up
How do I mark a shortcut file as requiring elevation
How long does it take to create a 16TB file
If you need anything other than natural alignment you have to ask for it
Its amazing you who end up meeting in New York City
Management-speak Norming around mechanisms
Microthink If you cant measure it then it doesnt exist
Not every first-chance exception is a security vulnerability
Now I can read my own writing the way you do With utter incomprehension
Paul Shirley Basketball player blogger and author
Psychic debugging The first step in diagnosing a deadlock is a simple matter of following the money
The Old New Thing the book allegedly now stocked at the Microsoft Company Store Redmond
The compatibility constraints of your side effects Beeping
The magical healing properties of safe mode bonus content
Throwing a cup of hot water into the air in sub-zero temperatures
Tis the season for top ten lists and manipulation of top ten lists
Unwittingly enveloped in the Santarchy
Wall Street bonus seasons trickle-down
Welcome to the Microsoft email culture
What seems obvious today may have been impractical then
What was the role of MS-DOS in Windows 95
When selecting system colors match but dont mix
Where do those Wall Street Journal hedcuts come from
Why arent console windows themed on Windows XP
Why is my starting directory ignored when I elevate a command prompt
Would a team of midgets be the greatest offense in baseball history
You mean you have computers in Taiwan
Your 25 car emergency survival kit

The Old New Thing - 2008 01

A new DUI record set in the state of Washington
Bait and switch literally applied to fish
Cant sing Cant dance Cant act Try the opera
Clean-up functions cant fail because well how do you clean up from a failed clean-up
Crackpots in computer security Dont plug it in man
Email tip Dont use a rude subject line just to make your message easier to spot
Even without a nitpickers corner I have to worry about nitpickers
Fact of life People cant see things that are right in front of them
Generating initials from a name is trickier than you think
How did registry keys work in 16-bit Windows
How does the calculator percent key work
If they had felt a little more mischievous when they titled the article Excerpts from Fischer-Spassky
In order to serve you better Chase resets your marketing preferences
In steady state only geeks install Windows but the hard part is getting to that steady state
Its one thing to say somebody should do this but doing it is another matter
Jag är inte heller en Microsoft-talesman på svenska
Jerry Springer The Opera crosses the pond to visit Carnegie Hall
Microspeak Housing
No matter where you put an advanced setting somebody will tell you that you are an idiot
PLAY A Video Game Symphony comes to Seattle
Shell policy is not the same as security
Taxes Files larger than 4GB
The Windows 95 volume control almost went to eleven
The classic start menu is even more classic than it looks
The dead home desktop problem returns
The history of the Windows XP common controls
The impact of hardworking employees on their less diligent colleagues
Use WM_WINDOWPOSCHANGED to react to window state changes
Use WM_WINDOWPOSCHANGING to intercept window state changes
What counts as a talent nowadays
What does it mean when a display change is temporary
When computer programmers dabble in economics Paying parking tickets
Why do registry keys have a default value
Windows is not an MFC delivery channel
You know the answer Window destruction

The Old New Thing - 2008 02

Bands of Valentine minstrels roaming campus
Coca-Cola for breakfast Its not just for computer geeks any more
Controlling which devices will wake the computer out of sleep
DLL forwarding is not the same as delay-loading
Follow-up Politically motivated armed robber being sent back to the US
Grass jelly may be an Asian drink but its not crazy
If you ask for STANDARD_RIGHTS_REQUIRED you may as well ask for the moon
If you ask whether Ill be at a conference the answer is usually No
If you used your credit card abroad between 1996 and 2006 you may be eligible for a class action laws
Joshua Roman groupies may have to set up their frequent flyer accounts
Losing the game of Last Checkin Chicken two products in a row
Making a reservation at the Asteroid and interrupting a cookie-bake
Microspeak Assorted babble
Nobody actually talks the way they do in training videos do they
Otaku cosplay culture makes another inroad into North America
Pass the whipped partially hydrogenated soybean and coconut oils please
Strange bug assignment Programs are using too much memory
TechDays 2008 learns the sneaky way of getting me to show up at your conference
Thank you people sitting behind me for explaining what the conductor is doing
The 20082009 Seattle Symphony subscription season at a glance
The United Kingdom of Great Britain Northern Ireland and France
The dead home desktop returns from the dead
There can be more than one or zero Converting a process to a window
Theres more to switching stacks than just loading a new stack pointer
Wait a second I thought we stopped doing this back in 2003
What did MakeProcInstance do
Whats with all those spam ping-bots
When somebody gives you a gift of code its more often than not a burden in disguise
When theres a problem with the platform you blame the platform whether its the platforms fault or not
When you ask somebody to take a look you need to tell them what you want them to find
Who decides what can be done with an object or a control
Why are process and thread IDs multiples of four
Why cant I get FormatMessage to load my resource string
Why couldnt you have more than one instance of a 16-bit multi-DS program
Why did the display become a snapshot of the last time the monitor was plugged into the computer
Why does CtrlScrollLock cancel dialogs
Why does Explorer show a sign even if there are no child folders

The Old New Thing - 2008 03

2008 Q1 link clearance Microsoft blogger edition
Buses and trams going to this place called Reservado
Email tip A peer-to-peer discussion group does not come with a service level agreement
Exercise doesnt have any effect unless you know youre doing it
Happy Waffle Day And other holidays named after food
How do I log on using a dial-up connection on Windows Vista
How to write like Raymond What I tell you three times is true
I hadnt realized its an entire genre Music made from Windows system sounds
I try not to rely on the kindness of strangers but its a pleasant surprise when strangers come throug
If you grant somebody SeDebugPrivilege you gave away the farm
Meet Deltalina the star of Deltas new in-flight safety video
Microspeak Newplacement
Not my finest hour Using the wrong mouse
Raymonds highly scientific predictions for the 2008 NCAA mens basketball tournament
The art of losing things Keep moving them around
The most academically elite team in college basketball in quest for their first conference win in 21
We hope you enjoyed this bus tour of Charles de Gaulle International Airport
What a drag Dragging a Uniform Resource Locator URL and text
What a drag Dragging a Uniform Resource Locator URL
What a drag Dragging a virtual file HGLOBAL edition
What a drag Dragging a virtual file IStorage edition
What a drag Dragging a virtual file IStream edition
What a drag Dragging text
What do rocket scientists say when they want to say that something isnt hard
Whats the difference between int and INT long and LONG etc
Whats the difference between the COM and EXE extensions
Why are structure names different from their typedef names
Why cant I convert a time zone abbreviation into a time zone
Why cant you rename the Recycle Bin
Why do structures get tag names even if there is a typedef
Why does scheduling a task require a password
Why isnt there a GetDlgItemFloat function
You can drag multiple virtual objects you know

The Old New Thing - 2008 04

21 like 24 but three hours shorter
Baby Names for Dummies
Book me the next flight to Tokyo no wait the second flight
Email tip Nostalgia is not a question
Fell the force
Follow-up That shopautodotca seocontest online contest
How do I force the ECHO command to echo
How to tell which end of the Metro platform to stand on and other survival tips for the Lisbon subway
I always get scared when I see people trying to organize the Internet into hierarchies
I know you cant provide tax advice but Im just looking for tax advice
In search of Rossio Train Station
Lisbon The city whose public transportation system operates in three dimensions
Maybe thats how you do it but around here we have a different convention for indicating which things
News flash Alumni give to colleges and universities to get their kids admitted
News flash Universities are more likely to admit students whose parents gave lots of money
On the relationship between specific cases and general cases
One-line batch script to delete empty directories
Over 1500 times the net worth of Bill Gates yet nobody has heard of him
Pranksters breathe a sigh of relief There will never be a Building 7
Proto-Microspeak Center of value
Racking up the frequent shopper points at the register office
Raymond misreads newspaper headlines episode 2
Raymonds reading list The Mythical Man-Month The Design of Everyday Things and Systemantics
STATUS_BUFFER_OVERFLOW really should be named STATUS_BUFFER_OVERFLOW_PREVENTED
Some other places atoms and the magical 0xC000 arise
Special advance screening of five seconds of True Lies
Take Our Daughters and Sons to Work today unless you work at main Microsoft campus in which case wait
The concrete pedestrian bridge in the Washington Park Arboretum claims another victim
The contradictory dialog Click Finish to begin
The dead desktop computer The good the bad and the ugly but not in that order
The double-click time tells the window manager how good your reflexes are
Use the error directive to check whether the compiler even sees you
User interface code multi-threaded apartment death
We cant cut that its our last feature
What happened to winipcfg and netmon
When a treehouse just isnt good enough
Who defined my name first Turnabout is fair play
Why do atoms start at 0xC000
Why does clearing document history also clear Run history
Why doesnt Explorer let you create a file whose name begins with a dot
Windows doesnt close windows when a user logs off thats your call

The Old New Thing - 2008 05

Another interesting detail from the analysis of Windows Error Reporting data for Explorer
Apparently Ive been promoted by mistake all these years
Bacalhau The unofficial national dish of Portugal and dont pass the salt
Behind the Scenes at Mythbusters does not include experiments or explosions
Build a slide show out of search results
Canoeing around the Washington Park Arboretum
Data breakpoints are based on the linear address not the physical address
Email tip If they didnt get your message then they wont know that they didnt get it
Food discovery Vietnamese sandwiches aka bánh mì
Gentle reminder On a dialog box do not give OK and Cancel accelerators
How do I flash my window caption and taskbar button manually
I assume its cracking good though Im not the expert
If users can shut down the machine its not a security hole if they can shut down the machine
If you pass invalid parameters then all bets are off
In Lisbon walkdont walk signs are mostly decorative
India Calling Call centers from the Indian point of view
König Drosselbart Performed in clay feathers and other strange materials
Microspeak On-board verb
Mothers Day is for all mothers not just your own mother
News flash Its dangerous to drive a car if you are blind
Psychic debugging Why does ExitProcess1 produce an exit code of zero
Reading a contract from the other side SHSetInstanceExplorer and SHGetInstanceExplorer
Selling your life for a quarter at a time
Strange uses for window class atoms
The Big Red Switch really was big and red
The Phantom Bug Why doesnt MessageBox work from my WM_NCDESTROY handler
The cultural axes of punctuality and waiting in line
The dead desktop computer From good bad and ugly back to dead
The economics of soccer penalty kicks
The new dietary restriction landscape
The sad demise of whimsical teasing in Comic Chat
Welcome to the International Bank of Raymond
What does TranslateAccelerator do
Why always Windows XP and Windows Vista and not just XP and Vista
Why are some GDI functions named ExtXxx instead of XxxEx
Why every advertising agency needs to have a review panel of twelve-year-old boys
Why is the function SHStripMneumonic misspelled
You cant give away something that isnt yours
You didnt know you could add properties by atom and its a good thing you didnt know

The Old New Thing - 2008 06

2008 mid-year link clearance
Blinding bank robbers with kindness
Dlaczego Microsoft zatopił Polskę
Donations to the Microsoft Archives Pens CDs and paperweights
Dont be helpless You can find information too if you try
Dont require your users to have a degree in philosophy episode 3
Email tip Pronouns in the subject line are in the eye of the beholder
Food products that are offenses against nature Bisquick Shake n Pour
GUIDs are globally unique but substrings of GUIDs arent
How do the common controls convert between ANSI and Unicode
If you say that you dont care about something you shouldnt be upset that it contains garbage
Isnt the Learning Annex for total losers
Just because youre using a smart pointer class doesnt mean you can abdicate understanding what it doe
MSDN-speak What does it mean when a parameter contains a value
Microspeak Pricing uplift
Million Dollar Password At least it shares a name with the original
Money The new plagiarism
Portugal TechDays 2008 A report
Raymond misreads acronyms MSPP-PVP
Raymond misreads newspaper headlines episode 3
Simply attach a piano to the end of the trebuchet
Sometimes its easier just to let the native speaker win
The difference between a junior and senior position at a video card company
The disappointment of people who need to have their hand held from beginning to end
The mystery of the garbage lady
There are only twelve function keys and who says theres somebody there to push them
Why are DLLs uninitialized in the wrong order
Why are accelerators for hidden controls still active
Why does OpenProcess succeed even when I add three to the process ID
Why has my clipboard stopped working
Why is there a menu show delay anyway
You dont need that 90 byte whereis program any more

The Old New Thing - 2008 07

A modest proposal Getting people to stop buying SUVs
A new record for the shortest amount of time between an email message and its resend
András Schiff 2006 lectures on the Beethoven piano sonatas
Be careful what you name your mailing list
Crazy ideas at the lunch table The ice cream bicycle
Dont be helpless You can put things together it doesnt have to be a single command
Double the usual number of fire alarms today
Dr Horribles Sing-Along Blog available online for a short time only
How can SIGINT be safely delivered on the main thread
How did the invalid floating point operand exception get raised when I disabled it
MessageBoxIndirect loads the icon itself you cant hand it a pre-loaded icon
Microspeak Well actually management-speak
News flash Car salesmen are sneaky and underhanded
News flash Online drug sales are shady
Raymond misreads newspaper head no wait I didnt
Reading a contract from the other side Simulating a drop
Simulating a drop part two
The Microsoft Company Picnic has as a side effect a demonstration of Microsofts rich cultural diversi
The best building name on the University of Washington campus
The evolution of menu templates 16-bit classic menus
The evolution of menu templates 16-bit extended menus
The evolution of menu templates 32-bit classic menus
The evolution of menu templates 32-bit extended menus
The evolution of menu templates Introduction
The sign that a trend is over It shows up in a movie
Theorize if you want but if the problem is right there in front of you why not go for the facts
Things other people have written that have amused me
Uninitialized floating point variables can be deadly
Warning This cereal may contain traces of spiders
What does each country claim for its own
Whats the deal with that alternate form for menu item template separators
When I double-click an Excel spreadsheet Excel opens but the document doesnt
When anybody can look up your name in the company directory and pay a visit
When companies make it hard for you to pay money they are owed
Why does the Install Font dialog look so old-school
Why is the LOADPARMS32 structure so messed up
Why seventh grade students want to go to weddings
Wikipedia has created its own reactionary subculture
Windows Vista changed the AltTab order slightly
Windows could not properly load the XYZ keyboard layout

The Old New Thing - 2008 08

AOL is moving closer to jettisoning dial-up except for one person
As a courtesy to performers and other audience members please turn off blinking head-mounted devices
DHS The Television Series the next chapter
Destroying the module and resource information associated with an icon
For that youll have to call security
I warned you The dangers of attaching input queues
Icons and cursors know where they came from
If the law says you cant file a petition you might need to file it anyway in case somebody later says
If you return FALSE from DLL_PROCESS_ATTACH will you get a DLL_PROCESS_DETACH
Its not Christmas Nobody enjoys unwrapping your present
Keeping a visit a surprise after people have already guessed that youre coming
Microspeak Pencils down
Microspeak The long pole
Oh no theres fog in San Francisco
Psychic debugging Why cant StreamReader read apostrophes from a text file
Raymond rewrites newspaper headlines
Supplementary reading on the subject of anonymous functions and other CLR topics
The Seattle Danskin Womens Triathlon 2008
The caret serves as the continuation character for batch files
The gradual erosion of the car trip experience
The implementation of iterators in C and its consequences part 1
The implementation of iterators in C and its consequences part 2
The implementation of iterators in C and its consequences part 3
The implementation of iterators in C and its consequences part 4
The stroke-count-based sort isnt random although it looks that way if you only see it in translation
The unwritten rule of riding a Seattle Metro bus
Wedding two-year-old flower girl wildcard
What does each country claim for its own greatest hits
What happened to the Search option on the right hand side of the Start menu
What possible use are those extra bits in kernel handles Part 1 Sentinels
What possible use are those extra bits in kernel handles Part 2 Overcoming limited expressiveness
What possible use are those extra bits in kernel handles Part 3 New object types
Whats with this MSH_MOUSEWHEEL message
When somebody says a game is like chess it is usually completely unlike chess
Why does Explorer generate a page fault every two seconds
Why was the RAM drive removed from Windows 95
Why when you sort by name doesnt it actually sort by name

The Old New Thing - 2008 09

2008 Q3 link clearance Microsoft blogger edition
And now your moment of reflection
Anybody can make up a generic mapping
ERRORLEVEL is not ERRORLEVEL
Even if a function doesnt do anything you still have to call it if the documentation says so because
For a place thats supposed to be full of doctors they sure dont look like doctors
How can I tell that a directory is really a recycle bin
How can I tell that a directory is weird and should be excluded from the user interface
How do I change the size of my desktop icons
How do I convert an error code to text when FORMAT_MESSAGE_FROM_SYSTEM doesnt work
I no longer have to remind the payroll department to gear up for annual raises
If you use an absurd signature I might end up sending it back to you
Ill see some of you in Los Angeles but this time itll be October
It helps if you write a cover letter and remember the name of your interviewer
Ive seen why people steal the foreground window for their dialog box
Meet the authors Mario Hewardt and Daniel Pravat authors of Advanced Windows Debugging
Microspeak Space delivery
News flash Doing something that requires your attention reduces your ability to do other things at th
QueryPerformanceCounter counts elapsed time not CPU cycles
Steamy coffee leaves grounds for concern
Suggestion Box 3 short answers part 2 of who knows how many
Tales from the interview Anticipating your own incompetence is not a good interview strategy
Tales from the interview Can you rotate this two-dimensional array
Tales from the interview Lunch is not a competition episode 2
Tales from the interview Lunch is not a competition
The description of my 2008 PDC talk is wrong
The purpose of charts is normally to make information easier not harder to understand
The terms of service you have to accept before you can see them
Well at least thats one fewer program that relies on window handles being even numbers
What were ShellExecute hooks designed for
When attending a training session on how not to mess up your life try not to mess up your life
When computer programmers dabble in economics Buying prepaid lunch vouchers
Who is responsible for destroying the font passed in the WM_SETFONT message

The Old New Thing - 2008 10

Acquire and release sound like bass fishing terms but they also apply to memory models
Ah local Los Angeles television news how I miss thee
An artists conception of the new citizenship test
Disable your wireless network card to speed up VPNing
Dude the admission bracelet goes around your wrist
Eventually nothing is special any more
How can I increase the number of files I can open at a time
How do I suppress the CapsLock warning on password edit controls
If you dont want to try to repair the data then dont but you should at least know that you have corru
If youre going to reformat source code please dont do anything else at the same time
Man this housing downturn is hitting everyone
Microspeak Teaming
Off-Roading The Old New Thing
PDC 2008 notes How to get to room 406A and other notes
Possessed A documentary about hoarding
Psychic debugging Why your thread is spending all its time processing meaningless thread timers
Stick to the normal candy and nobody gets hurt
Stories of crossing into Canada The wedding
Strange things happen when you let people choose their own name part 1
Strange things happen when you let people choose their own name part 2
Strange things happen when you let people choose their own name part 3
Sucking the trap frame out of a kernel mode stack trace
The cult of PowerPoint episode 2
The dangers of setting your double-click speed too short
To climb the corporate ladder youll need some rope but rope has many purposes
Typo patrol at the 2008 PDC
Why cant you thunk between 32-bit and 64-bit Windows
Why do maximized windows lose their title bar translucency
Why does Task Manager let me kill critical system processes
Why does killing Winlogon take down the entire system
Why does my Run dialog say that tasks will created with administrative privileges
Why does the Disk Management snap-in report my volume as Healthy when the drive is dying
Working with ambiguous and invalid points in time in managed code

The Old New Thing - 2008 11

Adventures in product testing This phones so hot itll set your head on fire
Consequences of the Explorer view model If you create a view then you succeeded even if youd rather f
Does version 6 of the common controls support ANSI or not
Doesnt matter what your marketing technique is for your compiler if nobody actually writes code in yo
Email tip If you ask a question that can be answered in only one way but thats not the answer dont be
How did Spicy Hot V-8 vegetable juice get added to the complimentary beverages in Microsoft kitchens
How slow do you have to slow-double-click for it to be a rename
If everything is top priority then nothing is top priority
If theres already a bug its not surprising that theres a possibility for error
If you wait long enough everything is our top priority
Is second-hand advice better than no advice at all
Just because a method is called Refresh doesnt mean that it refreshes what you want
Microspeak Represent
Not my finest hour Getting instructions on doing something Ive already done
Now its like people buy sneakers to make money out of them
Quite possibly my last in-person ballot for a long time
Rachmaninov had big hands An illustration
Rearranging the cities into a much more visually pleasing arrangement
Self-esteem gone overboard The perils of a global namespace
Sensor development kits were flying off the shelves
The Ballard Locks will be empty this week
The cost-benefit analysis of bitfields for a collection of booleans
The great thing about priorities is that you can always go one higher
Welcome to the 2008 holiday shopping season
What I dont get about bank robbers
What do these topics have in common
What seventh grade students want to be when they grow up an analysis
When youre walking around a city you usually forget to look up
Why bother with RegisterWaitForSingleObject when you have MsgWaitForMultipleObjects
Why is the maximum bootini delay 11 million seconds
Yes I filed an expense report for a hair dryer why do you ask
You cant fight in here this is the War Room
Youd think this sort of disclaimer on childrens modeling clay would not be necessary

The Old New Thing - 2008 12

2008 year-end link clearance
A bar on Microsoft main campus What should we call it
A file can go by multiple names but two files cant have the same name
Being lucky may be a matter of observing things you werent planning to observe
Crazy or cell phone
Dont be helpless You can find information too if you try episode 2
Dont use global state to manage a local problem
Email tip If you want people to look at a screen shot you have to tell them what theyre looking at
Every crash is a potential security vulnerability
Foiled by my withered hand
High Contrast Mode is not the same as High Contrast Scheme
How do I change the directory Windows uses for user profiles
How do I obtain the computer manufacturers name
How to create a Zune podcast from an audiobook or other files you already have
Microspeak Suited and booted
Misheard lyrics as applied to Christmas songs
Neuroscience can be used for good or for evil this one might fall in the evil bucket
Oh I feel so bad for those poor Wall Street folks who have to have a normal party instead of a ridicu
On 64-bit Windows 32-bit programs run in an emulation layer and if you dont like that then dont use t
PDC 2008 notes The aftermath
Raymonds technique for getting people to leave a meeting room when their meeting runs over
Sorry I dont get calls on this phone often
That guy in the neighborhood who has way too many Christmas lights
The Fargo campus responds to Redmonds December 2008 storm conditions
The Washington 2008 unclaimed property auction
The role of vitamin D in beta cell function The dance
The struggle against those annoying plastic packages gains a few allies
The worms go in the worms go out
Then again sometimes the improvement is merely incremental
Thrift stores drowning in Christmas impulse gifts from yesteryear
Today we use a GPS to locate Baby Jesus
Undecorating names to see why a function cant be found
What is the mysterious fourth message box button
When you start getting in-page errors on your hard drive its time to go shopping for a new hard drive
Why are all computers shown with a Printers folder even if printer sharing is disabled
Why are the generic version numbers called NTDDI
Why does the Explorer address bar reset itself while youre typing into it
Why isnt there a SendThreadMessage function

The Old New Thing - 2009 01

A process shutdown puzzle
But then we ran into problems when we started posting 10000 messages per second
Even if you have code to handle a message youre allowed to call DefWindowProc because you were doing
Excessive speed appeared to be a factor in the crash
Follow-up A new DUI record set in the state of Washington
Games to play at your Battlestar Galactica watching party
How do I write a program that can be run either as a console or a GUI application
How does PostQuitMessage know which thread to post the quit message to
I think I can read the bassoonists music from here
If you didnt like the answer asking the same question again is unlikely to help
If you have full trust then you can do anything so dont be surprised that you can do bad things too
If youre at a Thai restaurant with a Thai person whos ordering food in Thai and she asks you if you l
Its surprising how suddenly those new skins started pouring in
Kids love cake but that doesnt make them good judges of cake
May the Horse Be With You Stories from the racetrack
Microspeak Learnings
Not my finest hour Misreading a product label
Raymond misreads flyers A Taste of WWL
The day shellwindowscom went down
The great thing about being popular is that everybody wants to see you go down
The problem with The Month Where Everyone Focuses on Improving Documentation is that most people are
The programmers dont design skins they just make skins possible
Theres camping and then theres luxury camping and then theres ridiculous luxury camping
What is this magic setting that synthesizes Unicode from non-Unicode
When debugging a stack overflow you want to focus on the repeating recursive part
When you have only 16KB of memory you cant afford to waste any of it on fluffy stuff
Where does shellwindowscom get information about file extensions and how do I get in on that action
Why cant I see all of the 4GB of RAM in my machine redux
Why cant you apply ACLs to registry values
Why do I get the error REGDB_E_IIDNOTREG when I call a method that returns an interface
Why doesnt Windows 95 format floppy disks smoothly
Why isnt the screen resolution a per-user setting
You cannot pre-emptively reserve a file extension
xkcd breaks the news on the new Windows 7 user interface

The Old New Thing - 2009 02

A different type of writing exercise this time in preparation for buying a house
A process shutdown puzzle Answers
Announcements on the ferry and hills that grew while I was away
Another Seattle bus tool One Bus Away
Being lucky is observing what you werent expecting An illustration
Changes to the the 20092010 Seattle Symphony subscription season
Dont keep track of information you dont need
Email tip Just because you get answers when you misuse a mailing list doesnt doesnt mean you should c
Foreground activation permission is like love You cant steal it it has to be given to you
Guest TCP psychic debugging Why the remote server keeps RSTing the connection
How do I programmatically show and hide the Quick Launch bar
How does Raymond decide what to post on any particular day
If you get confused by a register dump then youll just have to accept that some of my postings wont m
In order to serve you bett wait it really is better Fuel surcharges
Microspeak Recommends noun
Pressing a registered hotkey gives you the foreground activation love
Rob Cockerham investigates those companies that pay cash for gold
Smart quotes The hidden scourge of text meant for computer consumption
Star Trek meets The A-Team
Superthunderstingcar is go
The 20092010 Seattle Symphony subscription season at a glance
The checkbox The mating call of the loser
The love bus also known as Metro Bus Route number 308
Welcome to Groundhog Day a holiday where the same thing happens over and over
What are your high school language students complaining about today
What does the COM Surrogate do and why does it always stop working
What is the purpose of the RunAsCommand value
What is the terminology for describing the various parts of the registry
What the various registry data types mean is different from how they are handled
Why do my file properties sometimes show an Archive check box and sometimes an Advanced button
Why doesnt the file system have a function that tells you the number of files in a directory
Why is there no supported way to get the command line of another process

The Old New Thing - 2009 03

2009 Q1 link clearance Microsoft blogger edition
Caption contest The pinball machine
Defense in depth means that you protect against exploits that dont exist yet
Do QueryProcessCycleTime and QueryThreadCycleTime include cycles spent in kernel mode
Double secret auto-arrange probation
Engineering is about tradeoffs How hard will you work to save 68KB of disk space
Et tu Fargo
Fixups are not the same as rewriting code theyre just fixups
Freudian typo The spinlock
How to write like Raymond Intentional typographical errors
I drive a car the way most people use a computer
If Michael Jackson took up bhangra dancing
If Twitter is micro-blogging then is what Im doing macro-tweeting
Microspeak Year-over-year
Overheard conversation fragment Shrimp is not vegetables
Race you to the top The Empire State Building Run-Up
Raymond rewrites newspaper headlines episode 2
Raymonds highly scientific predictions for the 2009 NCAA mens basketball tournament
Sometimes people dont even read what theyre typing
The Suggestion Box is for suggestions thats why its called a Suggestion Box
The house no-electronics zone
The inability to lock someone out of the registry is a feature not a bug
The perilous quandary of including external drivers on the Windows CD
Totally Recall The meal
Well duh Id sure better get my money back
What is the implementation of WM_PRINTCLIENT
Whats the point of the MoveWindow function when we already have SetWindowPos
Why does the MoveWindow function let you suppress repainting
Why doesnt the MoveWindow function generate the WM_GETMINMAXINFO message
Why dont the favorites I copy into the common Favorites directory show up in the Favorites menu of al
Why is the Win32 epoch January 1 1601
Why is there a dry fountain in the Redmond North campus
You cant globally reserve screen space you can put up signs but if somebody ignores the sign youll ha

The Old New Thing - 2009 04

A simple bar chart on letter distribution
Being able to call a function without using GetProcAddress is not a security vulnerability
Clap and the filter graph claps with you
Fashion is something that can be acquired by looking at lots of different fashions
How to answer the telephone according to the manual
Identity theft via repeated name changes
If you cant find the statistics you want then just make them up
Let GDI do your RLE compression for you
Microspeak The plate
No were not nerds why do you ask
Office redecoration The classic Microsoft prank
On the almost-feature of floppy insertion detection in Windows 95
Principles of economics translated
Qrystal does more research into those spam blogs
Taxes redux You cant open the file until the user tells you to open it
The Start menu pin list is just a list of items theres no magic
The dangers of destroying a window while it is processing a sent message
The frustration of people who are not interested in why something works but only interested in the ma
Theres nothing wrong with making bold treeview items
Those notification icons with their clicks double-clicks right-clicks whats up with that
What kind of uncle am I
What structure packing do the Windows SDK header files expect
When people ask to disable drag and drop they often are trying to disable accidental drag and drop
Why are there two values for PSH_WIZARD97
Why is the animation common control limited to RLE8-compressed animations
Why is there no support in the window manager for mouse button chording
Why is there sometimes a half-second delay between the click and the action
Windows 95 almost had floppy insertion detection but the training cost was prohibitive

The Old New Thing - 2009 05

A puzzle Why are so many fake LiveJournal blogs written by 29-year-olds
Alternatives to using the error directive to check whether the compiler even sees you
An unexpected application of the First Law of Thermodynamics
Before designing and implementing around an assumption it helps to check that your assumption is true
Chicken chicken chicken chicken
Creating shortcuts in the same folder as the target isnt as stupid as you may think
First try reading the error message Episode 1
How do I get a window back on the screen when it moved far far away
How do I know whether a window message was processed
How to hide privacy violations in a privacy disclosure statement part 2
If an event is signaled more than once are they delivered in the order in which they were signaled
Im sorry you dont have permission to know where this shortcut file should show up in the Explorer win
Imagine our luck when we found one of the fancy conference rooms available for our meeting
Just letting you know I had to reboot my telephone
Lessons from the state police like what to do when they pull you over
Microspeak T-shirt sizing
Parents billed when kids miss school Pay for play
People become more trustworthy the more you trust them
Signs that your new building was originally designed for another purpose Rest rooms
The dummy icon that doesnt know that its fifteen seconds are over
The latest installment of Wallace and Gromit coming to Seattle
The social skills of a thermonuclear device Why did you hang up
What do you call a gadget that is used for debugging which looks at the properties of other gadgets
When advanced users outsmart themselves The device removal notification icon
When you subclass a window its the original window procedure of the window you subclass you have to c
Why cant you change the alignment of an edit control after it has been created
Windows Vista User Experience Guidelines is online and downloadable
Writing a sort comparison function redux
You can tell which people listed blogging as a performance review goal

The Old New Thing - 2009 06

2009 mid-year link clearance
A concrete illustration of practical running time vs big-O notation
Bonus chatter about that virus that is responsible for the top six Explorer crashes
Cool guys dont look at explosions
Dont you hate it when someone leaks a ref to your clothes
First try reading the error message episode 2 Even programmers see error messages without reading the
Foreign languages can be used as a secret code but its not always a good secret code
Fortune cookie fortunes are getting less and less interesting all the time
Happening to be at the same post-concert restaurant as symphony performers
High school students guess what happens to money deposited into checking accounts
If you want to consume all the virtual address space well then go ahead and consume it you dont need
Im sorry Brian George but we got cut off and I couldnt call you back
John Swansburg deftly declines the fine print disclaimer on his Heelys
Last tube standing The Cardboard Tube Fighting League
Learning to lie Early forays
Management-speak Upping the sats and stimulating the ecosystem
Microspeak The plan for the plan
Mixed messages from the IT department regarding email safety
News flash Children are influenced by advertising
Oh great and my phone even has a CPU meter
On the importance of sanity-checking values where money is involved
Spam trackback attack returns its not a matter of whether but how much
Spam trackback attack week 2 statistics
Spam trackback attack week 3 statistics
Sure I can get spurious WM_MOUSEMOVE messages but why do they keep streaming in
The butter and the money for the butter
The dangers of mixing synchronous and asynchronous state
The thread that gets the DLL_PROCESS_DETACH notification is not necessarily the one that got the DLL_
Welcome to Leavenworth Washingtons faux-Bavarian village
What does the Zw prefix mean
Whew Im not doing that again
Who you calling boring
Why cant I rotate the display with ChangeDisplaySettingsEx
Why do some file operations take file names and others take handles
Why does Explorer use the term KB instead of KiB
Why does MS-DOS use 83 filenames instead of say 112 or 1616
Why does a flashing taskbar result in a fullscreen console returning to windowed mode
Why does the CreateProcess function modify its input command line
Why isnt there a separate British English version of Windows
Yet another experiment in motivating people to find and fix bugs
You cant leave a critical section you never entered

The Old New Thing - 2009 07

A 32-bit application can allocate more than 4GB of memory and you dont need 64-bit Windows to do it
Attack of the rogue feature Oh no where did my Explorer icon labels go
Caption contest The pinball machine Results
Changes to the the 20092010 Seattle Symphony subscription season part 2
Command line parsers look at what you typed not what what you typed looks like
Conway-Kochen Free Will Theorem Lecture series
Failed follow-up The case of the dubious dental work
Film students and The Bicycle Thief
Foreign languages can be used to impede communication
How do I put a window at the edge of the screen without triggering the automatic positioning behavior
How do I quickly position two windows side by side using only the keyboard
How do I quickly position two windows side by side
How organizations inadvertently confirm facts when they try not to
I saw a fascinating documentary about bugs
If dynamic DLL dependencies were tracked theyd be all backwards
If somebody speaks a language Im not expecting sometimes I dont understand it even though I should
If you wished a language supported the preprocessor you know you can fix that
MS-DOS also allowed spaces in file names although vanishingly few programs knew how to access them
Microspeak Whale Boy
More musings on the peculiar linguistic status of languages acquired in childhood
Mr Lee CatCam lets you see what a cat does all day
On gender differences in expectations of thinness and the impact on guys who live in their parents ba
Polling by sleeping versus polling by waiting with a timeout
Proto-Microspeak Coceptualize
Separating the metadata from the DIB pixels Precalculating the BITMAPINFO (1)
Separating the metadata from the DIB pixels Precalculating the BITMAPINFO
Speculation on how a mishandled 13-character string can result in a blue screen
The New York Times says Im doing it all wrong but maybe thats for the better
The advantage of knowing your limits of discrimination
The disembodiment of DIBs from the DIB section
The fun and profit of manipulating the DIB color table can be done without having to modify it
The guerilla wedding
The most unwanted song ever
The world reaction to the unexpected death of Michael Jackson extends to young children
Up and down often substitute for compass directions but you have to know when youve taken it too far
What happens to your restaurant tip
What is the difference between CSIDL_DESKTOP and CSIDL_DESKTOPDIRECTORY
What is the difference between Directory and DirectoryBackground
Why does my screen go black when an emergency hibernation is in progress
Why was MoveTo replaced with MoveToEx
You can use a Coke slogan as your password but not a Pepsi one
Your debugging code can be a security hole Contest tickets

The Old New Thing - 2009 08

A burglar tells you the best place to hide your money
A different perspective from the first row of the symphony
Actually FlagsAttribute cant do more thats why its an attribute
And they dont take American Express
City noises and their effects on songbirds
Common gotchas when writing your own pinvoke
How do you drop on the background of an Explorer window when it is in details view
In Ephesus you juggle or die
Isnt every dinner at a technology conference a geek dinner
Its not just on the Internet that nobody knows you dont have a real office
Landing the Space Shuttle is hard enough as it is
Meta-content Suggestion Box 4 will open sometime next year
Microspeak Action on
My phone just DoSd my office network
Not beany enough
Programming means that sometimes you have to snap two blocks together
Restating the obvious about the WM_NOTIFY message
SHCIDS_CANONICALONLY is the moral equivalent in the shell namespace of the Unicode ordinal comparison
Searching for Evil Spot the scam
The format rectangle is recalculated whenever the window resizes and thats a good thing
The great thing about naming conventions is that not everybody will follow them
The great thing about regular expression engines is that there are so many to choose from
The operating system doesnt know which language programs are written in by the time the code hits th
The way to stop people from copying files to a folder is to use NTFS security not to block dragdrop
The wisdom of sevHHHeighth graders What it means to be an adult
The wisdom of seveHHHHsixth graders What it means to be an adult
The wisdom of seventh graders What it means to be an adult
Theres no law that says a meeting cant end early
What is the maximum number of timers a program can create
When giving a presentation with a diagram pretend the diagram doesnt exist
Why cant I declare a type that derives from a generic type parameter
Why cant I pass a reference to a derived class to a function that takes a reference to a base class b
Why do new controls tend to use COM instead of window messages
Why does Windows wait longer than my screen saver idle timeout before starting the screen saver
Why doesnt StringFormat throw a FormatException if you pass too many parameters

The Old New Thing - 2009 09

2009 Q3 link clearance Microsoft blogger edition
A complex family calculus
Can you create an information context for the display
Crazy Eddie His prices were insane because it was all a criminal operation
Dont panic its just H1N1
Grown in the middle of some very respectable Seattle suburbs such as Renton
Hey you look Chinese we have a class for people like you
If youre handling an out of memory exception you probably shouldnt allocate memory
Management-speak Focus
Microspeak Net net
Most people who go to an open house arent actually interested in buying it
One way to make sure nobody sends you feedback
Reading the error message carefully can help you see how the computer misinterpreted what you typed
Rentonites concerned about Hooters opening in their town but not for the reason you think
Should I fix the spelling in the United States Constitution
Start with a 50000 grant hold a fundraiser lose 47000
Thanks for identifying the good programmers for us
The COM marshaller uses the COM task allocator to allocate and free memory
The ways people mess up IUnknownQueryInterface episode 2
The wheels of government bureaucracy turn slowly Green cards
Things Ive written that have amused other people Episode 5
Things other people have written that have amused me Episode 2
Two-year-old as finite state machine
Walt Mosspuppet The return of the fake blog
We accept cash credit cards and Microsoft cardkeys
Welcome to the 11th annual Mid-Atlantic Road-E-O
Weve got your hotel surrounded on one side and not even the entire side
What is the logic behind the thumb size and position calculation in scroll bars
When people ask for security holes as features Privileged execution
When you agree to write to a particular length make sure your content is actually that length
Whoa there logging on awful fast now are we
Why are developer tools orange
Why do messages posted by PostThreadMessage disappear
Why does the Start menu search box autoselect some items but not others
Why doesnt Explorer have an interface for creating hard links
Windows 95s ticking death
Woe unto PROGMANINI

The Old New Thing - 2009 10

A Few Seconds of Panic Life as an NFL kicker
Arrived in Urbana-Champaign for ReflectionsProjections 2009
Dont use global state to manage a local problem practical exam
Freudian typo The accidental emoticon
How to write like Raymond Start a sentence with a question mark
I will be speaking at ReflectionsProjections 2009
If aluminum pull tab redemption is a rumor what happens to all the tabs
If you have to cast you cant afford it
Important window message numbers to memorize
In Hawaiʻi mahalo might officially mean thank you
In the search for the subtle source of the problem you sometimes overlook the obvious one
Leaving Reflections Projections 2009 travel marathon part two
LoadString can load strings with embedded nulls but your wrapper function might not
Once you announce a date youre already late
Please sir take a seat sit anywhere you like but oh no not there rats
Proto-Microspeak Efforting
Still working out the finer details of how this Halloween thing works
The classical model for linking
The mystery of the other girlfriend
The ways people mess up IUnknownQueryInterface episode 3
Thinking inside the box
Trying to come up with the most annoying meal ever
Viral video Pianotrappan
Warning Not much useful content inside
What is the format for FirstInstallDateTime on Windows 95
What is the format of a double-null-terminated string with no strings
What this batch file needs is more escape characters
When you commit memory you get a commitment to receive memory when you need it but no sooner
When you want to pass a parameter on the command line dont forget to pass the parameter on the comman
Why do we have import libraries anyway
Why does the Photo Gallery show all my photos with a colored tinge
Why doesnt the mail image resizer check the image size before offering to resize
Why wont my computer go to sleep Where is the energy going
Yes theres a new desktop window manager but no I dont know any more about it than you do
You always hurt the things you love

The Old New Thing - 2009 11

Caches are nice but they confuse memory leak detection tools
Can I talk to that William fellow He was so helpful
Good advice comes with a rationale so you can tell when it becomes bad advice
Hey is there somebody around to accept this award
How do I create a toolbar that sits in the taskbar
How do I get the command line of another process
How do I move the Windowsedb and other search index files
How does Raymond get rid of his excess pennies
How to pretend that you attended my talk at UIUC ReflectionsProjections 2009
How to tell when your patent has been approved
I reorganized your kitchen for you sweetie
I want to take all your chocolate milk
In the product end game every change carries significant risk
Leave it to the Taiwanese to think of wrapping a donut inside another donut
Little-known command line utility clip
Microspeak Net out
News flash Healthy people live longer
Signs that the symbols in your stack trace are wrong
Stories of anticipating dead computers Windows Home Server
The day the coffee machine exploded
The difference between assignment and attachment with ATL smart pointers
The magic of chocolate milk
Trying to avoid double-destruction and inadvertently triggering it
Umpires are the lymphatic system of the baseball diamond
We found the author of Notepad sorry you didnt go to the award ceremony
Were using a smart pointer so we cant possibly be the source of the leak
What a drag You can be a drag in managed code too
When asked to choose among multiple options the politician will pick all of them
When computer programmers dabble in making change
When you want to copy a file into a folder make sure you have a folder
Where did WIN32_LEAN_AND_MEAN come from
Why can you create a PIF file that points to something that isnt an MS-DOS program
Why does shlwapi import a nonexistent function
You thought reasoning about signals was bad reasoning about a total breakdown of normal functioning i

The Old New Thing - 2009 12

2009 year-end link clearance
A shell extension is a guest in someone elses house dont go changing the carpet
Christmas gift idea for your favorite Microsoft fanboy geek with no sense of fashion or taste
Even your folder icons can be used as a Rorschach test
Exploiting the inattentive The posted wine rating may not match the wine on the shelf
Fake trend watch Bridesmaid pre-nuptial agreements
How do I determine the processors cache line size
How do I minimize a group of windows in Windows 7 from the taskbar
How does the keyboard autorepeat setting work
I got an array with plenty of nuthin
Im sorry BrianBryan Gregory that confirming the spelling of your name is too much for you to handle
Intelius cancels its cell phone directory saving me the trouble of having to opt out of it every thre
Join the Seattle Symphony for a New Year Eves performance of Beethovens Nin wait a second
Just like in real life you can hire someone to do your programming taxes for you
Lamebook The best of Facebook
Merry Christmas to me Zune headphones
Microspeak Cookie licking
No you cant lock icons to the users desktop
No you didnt win the Jethro Tull box set and please tell everybody else in your area code to stop cal
Only an idiot would have parameter validation and only an idiot would not have it
Surprising things injected into Mozart cadenzas
The NPR Planet Money one-hour story competition The shopping mall convention
The economic inefficiency of gift-giving
The format of bitmap resources
Things Ive written that have amused other people Episode 6
Those houses are too small for anyone to live in
Tweeting Too Hard Best of Twitter
What are those little overlay icons Windows 7 edition
What is the effect of setting the 3GB switch on my 64-bit Windows machine
What is the story behind multimonh
What version of the compiler does Raymond use
What was the ShowCursor function intended to be used for
When there is a long line of people waiting for a shared resource you want to investigate the person
Why did the word Start disappear from the Start button
Why do Swedes count 1 X 2
Why do some comments have a star
Why does COM require output pointers to be initialized even on failure
Why dont we create a special class of programs which can break the normal rules
Why is it possible to destroy a critical section while it is in use
You are listening to Radio Free Bob a pirate radio station broadcasting on the Microsoft corporate ne

The Old New Thing - 2010 01

But thats not all The story of that cheesy Steve Ballmer Windows video
Can you get rotating an array to run faster than On
During process termination the gates are now electrified
Historically Windows didnt tend to provide functions for things you can already do yourself
How about not granting debug privileges to users
How do I suppress full window dragresize for just one window
How many sides are there to a snowflake The answer may surprise your marketing department
How to change the debugger attached to a process
How you might be loading a DLL during DLL_PROCESS_DETACH without even realizing it
I could just use a picture of a regular-sized shopping cart from farther away
If you are trying to understand an error you may want to look up the error code to see what it means
It rather involved being on the other side of this airtight hatchway If they can inject code then the
Its fine to rename a function in your DEF file but when you do you have to link to that function by i
Learning how to cheat at Candy Land
Microsoft phenomenon The annual award that winds up being awarded only once
Microspeak Engagement
Microspeak Zap
News flash Wearing clothing keeps you warm
People just like you for certain values of you
Pros and cons of using a four-year-old as your language instructor
Thanks for coming together to enjoy the holiday together now get off my lawn
The goggles they do nothing Gemulator advertisement from 1992
The hardest part of writing the video game Monty Pythons Complete Waste of Time
The wisdom of seventh graders Success
The wrong way to determine the size of a buffer
Weight Gain 4000 the competition
What idiot would hard-code the path to Notepad
What is the hSection parameter to CreateDIBSection for
Why arent compatibility workarounds disabled when a debugger is attached
Why does GetCommandLine give me a corrupted command line
Why doesnt the window manager have a SetClipboardDataEx helper function
Your program assumes that COM output pointers are initialized on failure you just dont realize it yet

The Old New Thing - 2010 02

A decidedly Canadian response to the shambles that was the running portion of the modern pentathlon i
A sense of the term anonymous with which I had previously been unfamiliar
A simple Venn diagram teaches you the difference between Norway and Sweden
Advocating the overthrow of the government of the United States by force or subversion
Custom navigation in dialog boxes redux
Dont forget to double-null-terminate those strings you pass to SHFileOperation
Food products that are offenses against nature Bagel-fuls
For better performance set all your monitors to the same color format
German language tip Matratzen mattresses Matrosen sailors
Happy birthday Windows 2000 and try not to get too hung over
How do I get information about the target of a symbolic link
How many servings are there in a single-serve cup The answer might surprise you
It appears that car park computers revert to their native language German when placed under stress
It looks a little like CMD except there is white on the background
It rather involved being on the other side of this airtight hatchway Dubious escalation
Its fine to use fibers but everybody has to be on board with the plan
Le Chateliers principle in action Announcements
Long-term temporary parking
Microspeak Future-proofing
Microwave popcorn enthusiast proudly proclaims I am popcorn
Moving by staying put
No matter what you do someone will call you an idiot part 2
On the Internet everybody wants to know if youre a dog
Private classes superclassing and global subclassing
The 20102011 Seattle Symphony subscription season at a glance
The Brits once again come up with a clever solution to the problem of the scatterbrained client
The fundamental rule of rocket science
The normal string manipulation functions stop on a null terminator so be careful when manipulating do
Those annoying satisfaction surveys
What happens to the fibers which ran on a thread when the thread exits
What is the maximum length of an environment variable
Why cant I use the linker to delay-load a function from kernel32
Why does the CBS_SORT combo box style sort the left square bracket so strangely
Why doesnt my program receive the WM_DWMSENDICONICTHUMBNAIL message when I ask for an iconic represen
Why doesnt the shell animation control tell me the dimensions of the animation it is displaying

The Old New Thing - 2010 03

2010 Q1 link clearance Microsoft blogger edition
A window can have a parent or an owner but not both
Application compatibility layers are there for the customer not for the program
Chilly Hilly 2010 kicked my butt
Delegation of responsibilities within a family during pregnancy
Everyday is Grammer Day
First try reading the error message episode 3 Even programmers see error messages without reading the
Germans are falling for the same trap as the Japanese Importing words from English and changing the m
How do I access the magic IEEE floating point values like NaN in code
How does delay-loading use binding information
How many days long is a one-day sale The answer might surprise you
Microspeak Dialogue
Non-Microspeak Boiling the ocean
One of the consequences of accepting a job offer is that you might end up working with an interviewer
PSM_ISDIALOGMESSAGE is to modeless property sheets as IsDialogMessage is to modeless dialog boxes
Raymonds highly scientific predictions for the 2010 NCAA mens basketball tournament
Robots and humans coexisting can it be done peacefully
Ruth Bader Ginsburg the yardstick for Wikipedia entries
Simplifying context menu extensions with IExecuteCommand
The best actors in the business still lean into the microphone when they talk
The great thing about URL encodings is that there are so many to choose from
Voicemail security even stronger than bank security
WaitForInputIdle should really be called WaitForProcessStartupComplete
WaitForInputIdle waits for any thread which might not be the thread you care about
What happens if I drag the mouse by exactly the amount specified by SM_CXDRAG
What happens to the control names in the IDE when my program is running
What is DLL import binding
What is DLL import hinting
When does STARTF_USESHOWWINDOW override the parameter passed to ShowWindow
Why does SHFileOperation have internal error codes for DVD
Why does it take longer to reject an invalid password than to accept a valid one
Why does my control send its notifications to the wrong window after I reparent it
Why does the OLE variant date format use 30 December 1899 as its zero point
Why doesnt double-right-click bring up the Properties dialog
Why is the fine for a basic traffic infraction in the state of Washington such a random-looking numbe

The Old New Thing - 2010 04

A short puzzle about heap expansion
Email tip When asking for help with a problem also mention what youve already tried
Email tip When you say that something didnt work you have to say how it didnt work
EnumClaw the function that never was
He bought the whole seat but we only needed the edge
How do I switch a window between normal and fullscreen
How to edit the security attributes of more than one file at a time
If its not yours then dont mess with it without permission from the owner
Its a miracle humanity has survived this far if reaction to the inability to make or receive a teleph
Microspeak SQMmed
Our legal department suggests you skip our salad dressing and just eat an avocado
The difference between your job and your hobby
The mysterious stock bitmap Theres no way to summon it but it shows up in various places
Welcome to Taiwans premier English-only nightclub
What happens to the contents of a memory-mapped file when a process is terminated abnormally
When people ask for security holes as features Non-administrators reading other users stuff
When you create an object with constraints you have to make sure everybody who uses the object unders
Why are there two values for NoDriveTypeAutoRun which disable Autoplay on drives of unknown type
Why cant I get my regular expression pattern to match words that begin with
Why cant you use WM_CTLCOLORSTATIC to change the color of a SS_BLACKRECT
Why do non-folders in my shell namespace extension show up in the folder tree view
Why does the wireless connection dialog ask for your password twice
Why doesnt SS_WHITERECT actually draw a white rectangle
Why doesnt TryEnterCriticalSection try harder

The Old New Thing - 2010 05

An insight into the balance between forgiveness and permission
Cliff Notes The short version of the Cliff Mass blog
Eating where the teenagers are Pão Pão Queijo Queijo
Every window with the WS_SYSMENU style has a system menu but its not there until it needs to be
How do I accept files to be opened via IDropTarget instead of on the command line bonus content
How do I accept files to be opened via IDropTarget instead of on the command line
How do I find the bounding box for a character in a font
How do I prevent users from dragging and dropping files in Explorer
How the shell converts an icon location into an icon
If Windows 311 required a 32-bit processor why was it called a 16-bit operating system
If you can detect the difference between an emulator and the real thing then the emulator has failed
It rather involved being on the other side of this airtight hatchway Consequences of enabling the ker
Maxing out the upsell-o-meter
Microspeak The statistic known as BIS
No good deed goes unpunished part 2 redux
On nearly getting pickpocketed in both Lisbon and Madrid
On the Portuguese custom of the couvert and other restaurant customs
SHAutoComplete giveth and SHAutoComplete taketh away
Thats a great idea its on the list
The many ways of converting a string from one language to another
The problem with setting up a story is that people focus on the set-up and miss the point of the stor
Things the locals know How to have lunch at El Brillante
Welcome to Belém the scam artist capital of Lisbon
Welcome to The New Old New Thing 2010 edition
Weve traced the call and its coming from inside the house Operating system names
What are these strange C environment variables
Whats the deal with Whats This
When will the window manager destroy a menu automatically and when do I need to do it manually
Why can I type a lowercase s with caron with the numeric keypad but not a lowercase r with caron
Why can programs empty the clipboard when they start up
Why doesnt the Windows Vista copy progress dialog show the names of the files being copied
Words youve had wrong your entire life

The Old New Thing - 2010 07

Crackpots in computer security The neighbors are looking at me weird
Decoding the parameters of a thrown C exception 0xE06D7363
Hardware backward compatibility The finicky floppy drive
Hardware backward compatibility The firmware that missed one tiny detail
Holy cow those TechReady attendees really love their tchotchkes
How do I configure a Remote Desktop Connection shortcut to open on a specific monitor
How do I launch the Explorer Search window with specific search criteria
I will be speaking at TechReady11
If Im not supposed to call IsBadXxxPtr how can I check if a pointer is bad
Instead of trying to figure out what shortcut class to use just ask the shell to do it for you
MSDN content is also available as a Web service
Management-speak Multi-perspective content
No you cant lock a gadget to the top of the sidebar
One small silver lining of moving Boeing headquarters to Chicago
Suggestion Box 4
The commutative law for postage and its limitations
The frustration of people who have already decided on the solution and wont let you derail them with
Theres always the low-tech way of managing a process too
Things Ive written that have amused other people Episode 7
Tips for planning your ship party
To enable and disable a window use the EnableWindow function
What Raymond listens to KCRWs The Business
What is the cost of WS_CLIPSIBLINGS if the sibling windows dont overlap
What is the lpClass member of SHELLEXECUTEINFO used for
Whats the difference between LastWriteTime and ChangeTime in FILE_BASIC_INFO
Why didnt Windows XP auto-elevate programs beyond those named setupexe
Why dont all the Control Panel applications show up when you open a menu from the address bar
Why is my icon being drawn at the wrong size when I call DrawIcon

The Old New Thing - 2010 08

A brief conversation while preparing to hike along the Pacific coast
Be careful that your splash screen doesnt squander the foreground love
Be on the alert Mainstream and alternative medicines mixed together on the store shelves not clearly
Did I know where the Novell short file name behavior came from
Dont forget to replace your placeholder bitmaps with real bitmaps
Everybody thinks about CLR objects the wrong way well not everybody
Everybody thinks about garbage collection the wrong way
How can I find all objects of a particular type
How do I get the Explorer navigation pane to highlight the current folder all the time
How do I get the reference count of a CLR object
How do I recover the window handle passed to ShellExecute
How many failure reports does a bug have to get before Windows will fix it
I challenge you to come up with an even lamer physics pun
If you return from the main thread does the process exit
Microspeak The funnel
Miss France she has the Eiffel Tower on her head because France has the Eiffel Tower and no other cou
On LockWindowUpdate Locking the taskbar
Raymond misreads flyers episode 2 It Takes You
Reflections create Xbox logo on neighbors roof
Shutdown reason codes are reason codes not error codes or HRESULTs
Some known folders cannot be moved but others can and youll just have to accept that
What happened to WinHelp
What was that story about the WinHelp pen-writing-in-book animation
What young children do when they hear a foreign language
When do I need to use GCKeepAlive
When does an object become available for garbage collection
Why did the Explore option disappear from the context menu of folders in the second column of the Sta
Why does the primary monitor have 00 as its upper left coordinate
Windows 95 It sucks less

The Old New Thing - 2010 09

2010 Q3 link clearance Microsoft blogger edition
Childrens reactions to macadamia nuts dipped in chocolate
Does anybody actually like Brazil nuts
Fact check The first major Microsoft product launched via Webcast
Flushing your performance down the drain that is
Follow-up The impact of overwhelmingly talented competitors on the rest of the field
Ha ha the speaker gift is a speaker get it
Happy Mid-Autumn festival 2010
Hey there token long time no see Did you do something with your hair
How do I create a UNC to an IPv6 address
How do I customize the order of items in the All Programs section of the Start menu
How do I get the dropped height of a combo box
How is the CommandLineToArgvW function intended to be used
How reliable is the BatteryLifePercent member of the SYSTEM_POWER_STATUS structure
It rather involved being on the other side of this airtight hatchway If you grant users full control
Its amazing how many business meetings there are in Munich in late September
Microspeak Sats
Pizza The reference food for young children
Speculation around Microsoft Company Meeting 2010
The contractually obligatory beeper and the customers who demand them
Was there really an Opera billboard outside Microsoft main campus
We apologize for the delay but there is an issue with the music
What happens to a named object when all handles to it are closed
What is the effect of the LARGEADDRESSAWARE switch on a DLL
Whats up with the strange treatment of quotation marks and backslashes by CommandLineToArgvW
Where did my mail control panel icon go
Why doesnt Win32 give you the option of ignoring failures in DLL import resolution
Why doesnt the TAB key work on controls Ive marked as WS_TABSTOP
Why not just require each application to declare what version of Windows it is compatible with
Yes the Windows 7 beta wallpaper was a picture of a betta fish
You must flush GDI operations when switching between direct access and GDI access and direct access i

The Old New Thing - 2010 10

Belated happy first birthday Windows 7
Debugging walkthrough Diagnosing a __purecall failure
Hacking Barney the dinosaur for fun no profit
How do I get the color depth of the screen
How do I get the dimensions of a cursor or icon
How do I programmatically invoke Aero Peek on a window
Its the Great Pumpkin Charlie Brown The world of competitive pumpkin-growing
Non-psychic debugging Why youre leaking timers
On understanding that getting married comes with changes in lifestyle
Secret passages on Microsoft main campus
The evolution of the ICO file format part 1 Monochrome beginnings
The evolution of the ICO file format part 2 Now in color
The evolution of the ICO file format part 3 Alpha-blended images
The evolution of the ICO file format part 4 PNG images
The memcmp function reports the result of the comparison at the point of the first difference but it
The overlooked computer room at school that became my office for a while
What does the FOF_NOCOPYSECURITYATTRIBS flag really do or not do
When you call a function your code doesnt resume execution until that function returns
Which ferry should we take from Germany back to Denmark Oh its this one except for that one word I do
Why are the keyboard scan codes for digits off by one
Why does TaskDialog return immediately without showing a dialog Answer
Why does TaskDialog return immediately without showing a dialog
Why does each drive have its own current directory
Why does my asynchronous IO request return TRUE instead of failing with ERROR_IO_PENDING
Why is the origin at the upper left corner
Why is there an LVN_ODSTATECHANGED notification when theres already a perfectly good LVN_ITEMCHANGED
Wildly popular computer game The Windows product team has you covered

The Old New Thing - 2010 11

But whos going to set up their own email server
Consequences of using variables declared __declspecthread
How full does a hard drive have to get before Explorer will start getting concerned
If you measure something people will change their behavior to address the measurement and not the thi
Is there any vendor bias in the way the Start menu determines which programs are most frequently used
Microspeak Take-away
One possible reason why ShellExecute returns SE_ERR_ACCESSDENIED and ShellExecuteEx returns ERROR_ACC
Saying that your case is different doesnt make it so
The curse of the current directory
The easy way out is to just answer the question What is the current Explorer window looking at
The program running in a console decides what appears in that console
The quiet fading away of the CtlPanelClass
The story of MUI as told by others with some commentary
The wisdom of seventh graders Being President
Using delayload to detect functionality is a security vulnerability
Watching the game of Telephone play out in five seconds
What if two programs did this Practical exam
What were GetSetMessageExtraInfo ever used for
Whats the difference between the Windows directory and the System directory
Why does the Win32 Time service require the date to be correct before it will set the time
Why does the common file dialog change the current directory
Why doesnt the End Task button end my task immediately
You can filter the Common File dialog with wildcards
Your debugging code can be a security vulnerability Loading optional debugging DLLs without a full pa

The Old New Thing - 2010 12

2010 year-end link clearance
Creative naming in pursuit of subverting the no-fun zone
Developing the method for taking advantage of the fact that the OVERLAPPED associated with asynchrono
How do I delete bytes from the beginning of a file
How do I limit the size of the preview window used by Aero Snap
How do I simulate input without SendInput
I will be speaking at TechEd China 2010 today
It rather involved being on the other side of this airtight hatchway Invalid parameters from one secu
Kindergarten writing exercise from my niece
Microspeak Informing a product
Psychic debugging When I copy a file to the clipboard and then paste it I get an old version of the f
Some notes on my trip to Beijing disguised as travel tips
Some suggestions on improving the assembly instructions for your childrens play furniture
That mysterious 01
The OVERLAPPED associated with asynchronous IO is passed by address and you can take advantage of tha
The __fortran calling convention isnt the calling convention used by FORTRAN
The alignment declaration specifier is in bytes not bits
The subtleties of a Will Ferrell movie and other observations from the in-flight entertainment on a C
There is no interface for preventing your notification icon from being hidden
TrackMouseEvent tracks mouse events in your window but only if the events belong to your window
Weve traced the call and its coming from inside the house Grid lines in list view report mode
What appears superficially to be a line is actually just a one-dimensional mob
What happened to the return code from WinMain in 16-bit Windows
What is the correct way of temporarily changing a threads preferred UI language
What makes RealGetWindowClass so much more real than GetClassName
Why are the Compression and Encryption options check boxes instead of radio buttons
Why cant you use the space bar to select check box and radio button elements from a menu
Why does SHCOLUMNINFO have unusually tight packing
WindowFromPoint ChildWindowFromPoint RealChildWindowFromPoint when will it all end
Windows 7 not only can make a wallpaper slide show from images on your computer it can even pull them
ZOMG This program is using 100 CPU1 Think of the puppies1111eleven

The Old New Thing - 2011 01

Begin feeling
Dont just stand around saying somebody should do something Be someone
From inside the Redmond Reality Distortion Field Why publish documents in PDF
How do you obtain the icon for a shortcut without the shortcut overlay
How to turn off the exception handler that COM helpfully wraps around your server
Microspeak Leverage
Modality part 9 Setting the correct owner for modal UI practical exam
My what strange NOPs you have
Processes commit RAM threads and how high can you go
Solutions that require a time machine Making applications which require compatibility behaviors crash
Some remarks on VirtualAlloc and MEM_LARGE_PAGES
The 20112012 Seattle Symphony subscription season at a glance
The MARGINS parameter to the DwmExtendFrameIntoClientArea function controls how far the frame extends
The message text limit for the Marquee screen saver is 255 even if you bypass the dialog box that pre
Theres a default implementation for WM_SETREDRAW but you might be able to do better
Was showing the column header in all Explorer views a rogue feature
Whats the difference between an asynchronous PIPE_WAIT pipe and a PIPE_NOWAIT pipe
When does a process ID become available for reuse
Why didnt they use the Space Shuttle to rescue the Apollo 13 astronauts
Why does SHGetSpecialFolderPath take such a long time before returning a network error
Why does pasting a string containing an illegal filename character into a rename edit box delete the
Why does the name of my TEMP directory keep changing

The Old New Thing - 2011 02

Any intelligent human being
DRUNK HULKs insightful commentary in all-caps and faux-rudimentary English
Dont mention the war I mentioned it once but I think I got away with it all right Episode 2
Dr Watson and the bluescreen a story from the trenches
How do specify that a shortcut should not be promoted as newly-installed on the Start menu
How long does an idle UNC connection remain active before it is automatically disconnected
I am no longer impressed by your fancy new 10000 BTU hot pot burner
If an operation results in messages being sent then naturally the target window must be processing me
If you want to use GUIDs to identify your files then nobodys stopping you
Microspeak Recycling bits or recycling electrons
On the linguistic productivity of the word spam
Psychic debugging Because of course when something doesnt work its because the program was sabotaged
Ready cancel wait for it part 1
Ready cancel wait for it part 2
Ready cancel wait for it part 3
Sharktopus Just when you thought it was safe to see what movies are coming out
Shortcuts are serializable objects which means that they can be stored in places other than just a fi
The 2010 Niney Award nominees have been announced
The cursor isnt associated with a window or a window class its associated with a thread group
There is no longer any pleasure in reading the annual Microsoft injury reports
WM_NCHITTEST is for hit-testing and hit-testing can happen for reasons other than the mouse being ove
What happens when you email the people in the Im a PC commercial
What is the difference between a directory and a folder
What is the highest numerical resource ID permitted by Win32
Why does SHGetKnownFolderPath return E_FAIL for a known folder
Why does WaitForMultipleObjects return ERROR_INVALID_PARAMETER when all the parameters look valid to
Window message parameters do not come with metaphysical certitude
iPhone pricing as economic experiment

The Old New Thing - 2011 03

2011 Q1 link clearance Microsoft blogger edition
Although the default icon for a shortcut is the icon of the target you can override that
Although the x64 calling convention reserves spill space for parameters you dont have to use them as
Charlie Sheen v Muammar Gaddafi Whose line is it anyway
Function requirements are cumulative If you fail to meet any of them then all bets are off
Having an owner window from another process is tricky but its sometimes the right thing to do
How can I generate a consistent but unique value that can coexist with GUIDs
How do I create a topmost window that is never covered by other topmost windows
How do I get the title of a dialog from a dialog resource
How do I monitor or even control the lifetime of an Explorer window
How does the C runtime know whether to use the static-linking or dynamic-linking version of the heade
How to rescue a broken stack trace Recovering the EBP chain
If youre waiting for IO to complete it helps if you actually have an IO to begin with
Microspeak Cadence
News flash Companies change their product to appeal to their customers
No not that M the other M the one called Max
Paul Cézanne and Camille Saint-Saëns may have similar-sounding last names but they are not the same p
Raymonds highly scientific predictions for the 2011 NCAA mens basketball tournament
The old DEBUG program can load COM files bigger than 64KB but that doesnt mean they actually load as
The window manager needs a message pump in order to call you back unexpectedly
What does the l in lstrcmp stand for
Whats the difference between FreeResource and say DestroyAcceleratorTable
Whats up with the mysterious inc bp in function prologues of 16-bit code
Why cant Explorer decide what size a file is
Why did Win32 define BOOL as a signed int instead of an unsigned int
Why does my TIME_ZONE_INFORMATION have the wrong DST cutover date
Why is there the message Do not use this registry key in the registry
You can extend the PROPSHEETPAGE structure with your own bonus data

The Old New Thing - 2011 04

Back from Las Vegas and now my clothes smell like cigarette smoke
Corrections to Patterns for using the InitOnce functions
Dont forget to include the message queue in your lock hierarchy
Endorsement Aaron Margosiss Unintended Consequences of Security Lockdowns talk at TechEd
Even if you have a lock you can borrow some lock-free techniques
Holding down the shift key when right-clicking lets you pin things to the Start menu even when you mi
How do I pin a program directly to the Start menu rather than a shortcut
Lock-free algorithms Choosing a unique value solutions
Lock-free algorithms Choosing a unique value warm-up
Lock-free algorithms The one-time initialization
Lock-free algorithms The opportunistic cache
Lock-free algorithms The singleton constructor answer to exercises
Lock-free algorithms The singleton constructor
Lock-free algorithms The trycommithand off model
Lock-free algorithms The trycommittry again pattern
Lock-free algorithms Update if you can Im feeling down
Microspeak Hipo
No you cant ask whether your notification icon is visible or not
Not quite understanding why you wash your hands before playing the piano
Overheard conversation fragment Im over here by the slot machines
Patterns for using the InitOnce functions
The funniest joke Ive ever told to a three-year-old
The introduction of whimsical teasing in Comic Chat
The performance improvements of a lock-free algorithm is often not in the locking
Theres only so much you can do to stop running code from simulating UI actions
Visual Studio 2005 gives you acquire and release semantics for free on volatile memory access
Why is there a RestoreLastError function that does the same thing as SetLastError
Windows is not a NET Framework delivery channel either

The Old New Thing - 2011 05

A function pointer cast is a bug waiting to happen
BeginBufferedPaint Its not just for buffered painting any more
Hidden compatibility constraints of redirecting program execution via a stub
How do IsThemeActive IsAppThemed and IsCompositionActive differ
How long do taskbar notification balloons appear on the screen
If its possible to do something then its possible to do something WRONG
If undecorated names are given in the DLL export table why does link dump exports show me decorated n
Just for fun Sample user names in Windows 7
Like a chicken talking to a duck
Looking at the world through kernel-colored glasses
Microspeak PowerPoint Karaoke and the eye chart
Multithreaded UI code may be just as hard as multithreaded non-UI code but the consequences are diffe
My evil essence revealed
One engineers interpretation of the Segway as a hybrid vehicle
Sorting is a state and a verb and a floor wax and a dessert topping
Thats not a duck
The Importance of Being Snooki
Watching the battle between Facebook and Facebook spammers
Why are custom properties created on Windows 2000 lost when I view the file from newer versions of Wi
Why does Explorer show a thumbnail for my image thats different from the image
Why dont the file timestamps on an extracted file match the ones stored in the ZIP file
Why double-null-terminated strings instead of an array of pointers to strings
Why is hybrid sleep off by default on laptops and how do I turn it on
Why is my program terminating with exit code 3
WinMain is just the conventional name for the Win32 process entry point
Your program loads libraries by their short name and you dont even realize it

The Old New Thing - 2011 06

2011 mid-year link clearance
A different way to win from one of those claw game
Generally speaking if your function fails you should return a failure code
How do I compress files via NTFS compression from the command line
How do I control X-Mouse settings active window tracking
How do I convert a UTF-8 string to UTF-16 while rejecting illegal sequences
How do I create a right-aligned toolbar button
How do I display the Find Printers dialog programmatically
How do I make a window remain visible even when the user selects Show Desktop
How do I prevent users from pinning my program to the taskbar
How to get Windows Media Player to single-step a video
In Windows the directory is the application bundle
Microspeak The planned unplanned outage and other operations jargon
PE resources must be 4-byte aligned but that doesnt stop people from trying other alignments
See you in Building 109 Conference Room A
Sufficiently advanced magic is indistinguishable from technology
Swamping the thread pool with work faster than it can drain
The UseUrl attribute in the App Paths key indicates that your application can accept a URL on the com
Theres more to workflow than hitting F5 in the IDE
What happens to WPARAM LPARAM and LRESULT when they travel between 32-bit and 64-bit windows
What happens when applications try to copy text by sending CtrlC
Why do Group Policy settings require me to have a degree in philosophy
Why doesnt my MessageBox wrap at the right location
You dont need to steal focus if you can just arrange for someone to give it to you
Youd think that with the name scratch people wouldnt expect it to be around for a long time

The Old New Thing - 2011 07

A handful of trips through the time machine
And that cadence means its halftime concert-goers
At least itll be easy to write up the security violation report
Be careful when redirecting both a processs stdin and stdout to pipes for you can easily deadlock
Hey lets report errors only when nothing is at stake
How do I disable windowless control support in dialog boxes
How do I find the original name of a hard link
How is it possible to run Wordpad by just typing its name even though it isnt on the PATH
Looking at the problem at the wrong level Closing a processs stdin
Luxurifying the camping experience in a different direction
Microspeak Reporting through
No were not going to play Stairway to Heaven and please tell everbody else in your area code to stop
Photoshop meme Mark Reynolds casually eating sunflower seeds
Simulating input via WM_CHAR messages may fake out the recipient but it wont fake out the input syste
Some mailing lists come with a negative service level agreement but thats okay because everybody is i
The danger of making the chk build stricter is that nobody will run it
The historical struggle over control of the Portuguese language
The list of heaps returned by GetProcessHeaps is valid when it returns but who knows what happens lat
The tradition of giving cute names to unborn babies
Using the wrong HINSTANCE in RegisterClass is like identity theft
Weve traced the pipe and its coming from inside the process
What does the executable timestamp really mean
What is that horrible grinding noise coming from my floppy disk drive
Why is secur32dll called secur32dll and not secure32dll
Windows has supported multiple UI languages for over a decade but nobody knew it
You dont need to ask me a question the compiler can answer more accurately

The Old New Thing - 2011 08

A shell extension is a guest in someone elses house dont go changing the code page
An even easier way to get Windows Media Player to single-step a video
How can I get information about the items in the Recycle Bin
Magic dirt the fate of former professional athletes and other sports randomness
Menu item states are not reliable until they are shown because they arent needed until then
Microspeak Dogfood
Modernizing our simple program that retrieves information about the items in the Recycle Bin
Ow Im too safe
Random musings on the introduction of long file names on FAT
ReadDirectoryChangesW reads directory changes but what if the directory doesnt change
Slim readerwriter locks dont remember who the owners are so youll have to find them some other way
Starting up inside the box
Stupid command-line trick Counting the number of lines in stdin
The ways people mess up IUnknownQueryInterface episode 4
What do SizeOfStackReserve and SizeOfStackCommit mean for a DLL
What does the CreateProcess function do if there is no space between the program name and the argumen
Why are the alignment requirements for SLIST_ENTRY so different on 64-bit Windows
Why can you set each monitor to a different color depth
Why cant I use PSGUID_STORAGE like a GUID
Why does IFileOperation skip junctions even though I passed FOFX_NOSKIPJUNCTIONS
Why does creating a shortcut to a file change its last-modified time sometimes
Why does the ShiftF10 menu differ from the right-click menu
Why does the runas command require its command line to be quoted
Why doesnt b match word boundaries correctly
Why doesnt the Open Files list in the Shared Folders snap-in show all my open files
You dont make something easier to find by hiding it even more deeply

The Old New Thing - 2011 09

2011 Q3 link clearance Microsoft blogger edition
A common control for associating extensions is well overdue
Ah the exciting world of cross-forest dogfood
Appearing to succeed is a valid form of undefined behavior but its still undefined
Does this operation work when impersonating The default answer is NO
Invoking commands on items in the Recycle Bin
Is this a really bug with CreateWindowEx or am I just confused
Microspeak The bug farm
Random notes from build 2011
Sending a window a WM_DESTROY message is like prank calling somebody pretending to be the police
Some preliminary notes from build 2011
Thanks for letting me know what my ideal career and company are
The clipboard viewer linked list is no longer the responsibility of applications to maintain unless t
Theres also a large object heap for unmanaged code but its inside the regular heap
Throwing garbage on the sidewalk The sad history of the rundll32 program
What happened to that suspicious-looking guy hanging around the entrance
What happens to a sent message when SendMessageTimeout reaches its timeout
Whats the story with the parameters to the WM_INPUT_DEVICE_CHANGE message
Why are the building numbers on Microsoft main campus so erratic
Why cant I PostMessage the WM_COPYDATA message but I can SendMessageTimeout it with a tiny timeout
Why do Windows functions all begin with a pointless MOV EDI EDI instruction
Why does my asynchronous IO complete synchronously
Why does my single-byte write take forever
Why doesnt the Disk Management snap-in incorporate SMART data
Why is the registry a hierarchical database instead of a relational one
Why waste your money on the car when its the sound system you care about

The Old New Thing - 2011 10

Adjusting your commute to avoid being at work quite so much
Beyoncé the giant metal chicken has a Facebook page
Do not access the disk in your IContextMenu handler no really dont do it
During process termination slim readerwriter locks are now also electrified
How can I get notified when some other window is destroyed
How do I access a file without updating its last-access time
How do I set an accessible name on an unlabeled control
If the shell is written in C why not just export its base classes
Is there a 2048 character limit for OFN_ALLOWMULTISELECT in MFC or isnt there
Microspeak Bug jail
My least effective Halloween costume
No good deed goes unpunished Helping to redirect a question
No modifying the DLLs that come with Windows is not supported
Raymond misreads restaurant names Local 360
Seeing the world through arbitrage-colored glasses
Squeezing the last bit of enjoyment out of the lost half-inning of a baseball game
The PSN_SETACTIVE notification is sent each time your wizard page is activated
The question mark lets you make up anything you like
The unattend file lets you configure Windows while its installing and in some cases its your only cha
The video of Microsoft Store employees dressed in Windows colors revealed by a falling curtain gee th
When your vice president tells you to stop replying to a mail thread you probably should stop replyin
Why cant I move the Program Files directory via the unattend file
Why do some infotips repeat the name of the item as well as the infotip
Why do the pinned items in the Jump List go on the top instead of the bottom
Why does copying a file to my USB thumb drive say that the parameter is incorrect
Why is there a CSIDL_DESKTOP value if you need the desktop in order to get it anyway
Why isnt my transparent static control transparent

The Old New Thing - 2011 12

2011 year-end link clearance
A feature I didnt even know existed much less had a name Color hot-track
Celebrating the end of the gluttony season but the effects linger
Deftly solving compatibility problems by withholding information
Dont let more than one process try to read from stdin at the same time
GetParent just as confusing as EnumClaw but its an actual function
How can I tell whether a window is modal
How do I determine programmatically whether a particular language is LTR or RTL
How do I get the full path for the target of a shortcut file
Introducing the for-if anti-pattern
Microspeak Offline noun
Not even making it to the airtight hatchway Execution even before you get there
Online gift ordering enthusiastic kids at the keyboard Unicode wait Unicode
Our code needs to run on multiple platforms with different rules so we follow none of them
Paint messages will come in as fast as you let them
Programmatically controlling which handles are inherited by new processes in Win32
Sure Im supposed to pass WT_EXECUTELONGFUNCTION if my function takes a long time but how long is long
The peculiar cadence of executive mail messages
Using the MNS_DRAGDROP style Dragging out
Using the MNS_DRAGDROP style Dropping in
Using the MNS_DRAGDROP style Menu rearrangement
What does it mean when my program exits with the message This application has requested the Runtime t
What is the API for accessing content on SkyDrive
Why does my program still show up in the Programs and Features folder after my uninstaller exits
Why is the file size reported incorrectly for files that are still being written to

The Old New Thing - 2012 01

A joke for mathematicians On the Weyl schism
A single-handed effort to keep the memory of 2 bills alive
Can OANOCACHE be used for non-debug purposes
Creating context menus on menus
Cultural arbitrage The food-related sucker bet
Does mapping the same shared memory two times in a process lead to double the address space usage
Dont try to allocate memory until there is only x free
Exploiting the inattentive The Xbox Kinect Premium Starter Kit
From the research journal Duh To lose weight eat less
How can I detect the language a run of text is written in
How do FILE_FLAG_SEQUENTIAL_SCAN and FILE_FLAG_RANDOM_ACCESS affect how the operating system treats m
How do I disable the fault-tolerant heap
How do I print non-error messages during compilation
It must totally suck to live near Abbey Road
Keys duplicated from photo Delayed reaction
Microspeak Walls and ladders
Misleading advertisement Passports or green cards
News flash Work-at-home job offers are mostly just scams
Puzzling out the upsell-o-meter
The 20122013 Seattle Symphony subscription season at a glance
The Freudian typo that will not die Enchanced video quality
The new business model Intentional billing errors
What a steal A house for only ten dollars
What were some of the abandoned features of Explorer back in its prototype days
When DLL_PROCESS_DETACH tells you that the process is exiting your best bet is just to return without
Why did HeapFree fail with ERROR_POSSIBLE_DEADLOCK
Why do Microsoft customer records use the abbreviation cx for customer
Why does CreateEvent fail with ERROR_PATH_NOT_FOUND if I give it a name with a backslash
Why does it take Task Manager longer to appear when you start it from the CtrlAltDel dialog
Why doesnt the Windows 7 Start menu have a pushpin for pinning items
Why dont ZIP files have the FILE_ATTRIBUTE_COMPRESSED attribute
Why was there a font just for drawing symbols on buttons
Why wasnt the Windows 95 shell prototyped on Windows NT
You can use backups for things other than restoring

The Old New Thing - 2012 03

Alt text for images are important in email too
Amusing message on a whiteboard in the hallway
Beverage Gas Division of Central Welding Supply
Converting to Unicode usually involves you know some sort of conversion
How do I get mouse messages faster than WM_MOUSEMOVE
How do I make it so that users can copy static text on a dialog box to the clipboard easily
How do I perform shell file operations while avoiding shell copy hooks
If you have multiple versions of Windows installed why do they all try to adjust the clock
In 1993 Microsoft stole my colleagues car
Isnt there a race condition in GetFileVersionInfoSize
Memory allocation functions can give you more memory than you ask for and you are welcome to use the
Microspeak Friction
The most exciting part of my morning is catching my bus specifically making the transfer
This isnt Highlights magazine Sort keys and why they change
To some people time zones are just a fancy way of sounding important
Why cant I delete a file immediately after terminating the process that has the file open
Why do program files go into the Program Files directory
Why does Explorer ignore seconds when sorting by Date Modified
Why does a maximized window have the wrong window rectangle
Why does holding the Ctrl key when selecting New Task from Task Manager open a command prompt
Why does my window style change when I call SetWindowText
Why does the VerQueryValue function give me the wrong file version number
Why doesnt the Maximize button maximize across all monitors
Why is the Heap32Next function incredibly slow on Windows 7

The Old New Thing - 2012 05

Charles Petzold is back with another edition of Programming Windows
Cheap amusement Searching for spelling errors in the registry
GUIDs are designed to be unique not random
Hazards of spelling autocorrection defiance
How do I hide a window without blocking on it
How do I prevent unchecked checkboxes in my listview control from disappearing
How does Explorer calculate the folder size information in the folder tooltip
How does the MultiByteToWideChar function treat invalid characters
How to view the stack of threads that were terminated as part of process teardown from the kernel deb
How to view the stack of threads that were terminated as part of process teardown from user mode
If my window hosts multiple windowless ActiveX controls which one do I call IOleInPlaceActiveObjectTr
Microspeak The parking lot
Sure we do that Context menu edition
The extern C specifier disables C mangling but that doesnt mean it disables mangling
Warum deine Mutter Deutsch spricht
What does a STATUS_OBJECT_TYPE_MISMATCH exception in LeaveCriticalSection mean
What happened to the Summary information created on Windows 2000 and Windows XP
What happens if I call KillTimer with a NULL hwnd
What is the historical reason for MulDiv1 -0x80000000 -0x80000000 returning 2
What was the registry like in 16-bit Windows
When you crash on a mov ebx eax instruction there arent too many obvious explanations so just try wha
Why are the Windows 7 system notification icons colorless
Why cant I use the file sharing wizard if I exclude inheritable permissions from a folders parent
Why is the Close button in the upper right corner
Why is there sometimes a long delay between pressing a hotkey for a shortcut and opening the shortcut

The Old New Thing - 2012 06

2012 mid-year link clearance
Counting down to the last day of school as students do it
Dont be helpless What might be the reason for a Path not found error
Eventually the window manager simply says that enough is enough
Fabio coming to Redmond Also Whey Protein
Globalization quiz In honor of well thats part of the quiz
How can I determine the underlying cause of a EXCEPTION_IN_PAGE_ERROR exception
How did my hard drive turn into a TARDIS
How did real-mode Windows fix up jumps to functions that got discarded
How did real-mode Windows patch up return addresses to discarded code segments
How do I prefetch data into my memory-mapped file
How does Explorer determine the delay between clicking on an item and initiating an edit
Its not a good idea to give multiple controls on a dialog box the same ID
Microsoft Dynamics in a soda can sort of
Microspeak Turds
Now that Windows makes it harder for your program to block shutdown how do you block shutdown
Thanks for reminding me what to do when the elevator is out of order
The time I watched a total lunar eclipse from the top of a mountain
What is the history of the GetRandomRgn function
When embedding a dialog inside another make sure you dont accidentally create duplicate control IDs
When the default pushbutton is invoked the invoke goes to the top-level dialog
Why do you have to wait for Windows Error Reporting to check for solutions before it restarts the app
Why does PrintWindow hate CS_PARENTDC Because EVERYBODY hates CS_PARENTDC
Why dont all of my folder customizations roam with my profile
You still need the safe functions even if you check string lengths ahead of time

The Old New Thing - 2012 07

A brief and also incomplete history of Windows localization
How much gets localized in a localized version of Windows
How your taskbar auto-hide settings can keep getting overwritten
Microspeak radar
One way to make sure you pass an array of the correct size
Psychic debugging Why your IContextMenuInvokeCommand never gets called
Raymonds subjective unfair and completely wrong impressions of the opening ceremonies of a major athl
Reading the output of a command into a batch file variable
Taking flexitarianism to another perhaps unintended level
The continuing battle between people who offer a service and others who want to hack into the service
The format of icon resources
The physics of a falling Slinky
Tracking shortcuts and the early history of multiple monitors
What are the recommended locations for storing different types of files
What does the HTOBJECT hit-test code do
What happens when you mark a section as DISCARDABLE
Whats the story behind the WM_SYNCPAINT message
Why do some font names begin with an at-sign
Why doesnt RealGetWindowClass return the real window class for my superclass
Why doesnt the Low Disk Space warning balloon show up as soon as I run low on disk space
Why dont any commands work after I run my batch file Im told that they are not recognized as an inter
Why dont per-item custom icons work when I open a Zip file or some other virtual folder
Why hasnt the API hook mechanism for x64 been standardized like it was for x86
You already got your answer why are you re-asking the question

The Old New Thing - 2012 08

Adventures in undefined behavior The premature downcast
Charles Petzolds Programming Windows Sixth Edition has reached Release Preview
Command line tool to manage Windows 7 Libraries with source code
Dumping a hash table with external chaining from the debugger
Exiting a batch file without exiting the command shell -and- batch file subroutines
FORFILES for your fancier batch file enumeration needs
Get your Contoso-branded merchandise while you can
How did real-mode Windows implement its LRU algorithm without hardware assistance
How do I customize how my application windows are grouped in the Taskbar
How do I find the most recently created file in a directory from a batch file
How does the taskbar decide whether to show Recent or Frequent documents on the jump list
How long does it take for a notification icon to stop appearing in the Notification Area Icons contro
If youre going to throw a badminton match you have to be less obvious about it
Im not calling a virtual function from my constructor or destructor but Im still getting a __purecall
Microspeak planful
My colleague picked a good day to go out and catch a baseball game
Of what possible legitimate use are functions like CreateRemoteThread WriteProcessMemory and VirtualP
Psychic debugging Why Chinese characters dont work
Sorry we got cut off my phone just auto-rebooted
The shifting sands of Run as different user
Wait you never said that I had to initialize the object before I used it
Well at least nobodys parking there any more
What happened to the Windows 2000 Language settings for the system control panel
What happened to the Windows 2000 Set default language setting for the system button
What if my application is really two applications bundled into a single file and I want them collecte
What is SysFader and why is it always crashing
Why am I in the Quake credits
Why is the desktop treated so special in window ordering
You gotta fight for your right to parry

The Old New Thing - 2012 09

2012 Q3 link clearance Microsoft research edition
A classification of faces with eyes open and closed in Dr Seusss ABC based on the nature of the chara
Buzzword-filled subject line easily misinterpreted by unsuspecting manager
Data in crash dumps are not a matter of opinion
Does the CopyFile function verify that the data reached its final destination successfully
How can I implement SAFEARRAYToString without going insane
How did the X-Mouse setting come to be
How do I invoke a verb on an IShellItemArray
How do you deal with an input stream that may or may not contain Unicode data
I brought this process into the world and I can take it out
IShellFolderBindToObject is a high-traffic method dont do any heavy lifting
In vollen Zügen genießen
One for the They have to say that because of me Ground rules at the Point Defiance Zoo
Raymond learns about some of the things people do to get banned on Xbox LIVE
Rogue feature Docking a folder at the edge of the screen
Sabotaging yourself Closing a handle and then using it
The Ride to Rio Bicycling from Los Angeles to Rio de Janeiro
The case of the asynchronous copy and delete
The day I stole Joe Belfiores mouse
WM_CTLCOLOR vs GetFileVersionInfoSize Just because somebody else screwed up doesnt mean youre allowed
When you transfer control across stack frames all the frames in between need to be in on the joke
Why arent environment variables being expanded in my RGS file
Why cant I set Size all columns to fit as the default
Why cant I use Magnifier in Full Screen or Lens mode
Why dont the shortcuts I put in the CSIDL_COMMON_FAVORITES folder show up in the Favorites menu
You cant rule out a total breakdown of normal functioning because a total breakdown of normal functio

The Old New Thing - 2012 10

An unexpected application of negative numbers to gift-giving
Combo boxes have supported incremental searching for quite some time now
Diversion Generating a random color from JavaScript
How do I override the default icon selection algorithm
How do I suppress the default animation that occurs when I hide or show a window
How do you come up with new shortcut keys
How does Explorer deal with recent files that were renamed
If theres a problem with a wiki then you can fix it thats why its a wiki
In the conversion to 64-bit Windows why were some parameters not upgraded to SIZE_T
Irony patrol Recycling bins
Keyboard layouts arent like Beetlejuice they wont appear just because you say their name
Keyboard shortcut for resizing all columns in a listview control to fit
Microspeak Granular
The TEMP directory is like a public hot tub whose water hasnt been changed in over a year
The cries of Oh no emerge from each office as the realization slowly dawns
The wisdom of seveHHHHsixth graders Living without electronics for a week
Usage guidance for a popcorn machine in the kitchenette
Using WM_COPYDATA to marshal message parameters since the window manager otherwise doesnt know how
What happens if you forget to pass an OVERLAPPED structure on an asynchronous handle
Whats the difference between F5 and F8 at the boot screen
Whether the Unicode Bidi algorithm is intuitive depends on your definition of intuitive
Why does RegOpenKey sometimes but not always fail if I use two backslashes instead of one
Why does ShellExecute return SE_ERR_ACCESSDENIED for nearly everything
Why does Windows Compressed Folders Zip folders reject paths that begin with a slash
You cant use the WM_USER message in a dialog box

The Old New Thing - 2012 11

Break it up you two The zero width non-joiner
Frequentists vs Bayesians
How do I forward an exported function to an ordinal in another DLL
How do I get the tabbed dialog effect on my own custom tabbed dialog
How do I parse a string into a FILETIME
How do I use group policy to improve security of USB thumb drives in my organization
How does the window manager decide where to place a newly-created window
If youre asking somebody to help you you want to make it easy for them not harder
If youre going to write your own allocator you need to respect the MEMORY_ALLOCATION_ALIGNMENT
Instead of trying to create a filter that includes everything try just omitting the filter
It rather involved being on the other side of this airtight hatchway Silently enabling features
Microsoft Money crashes during import of account transactions or when changing a payee of a downloade
Microspeak touch base
Puzzling triple rainbow clearly identifies location of pot of gold
Raymonds podcast list for 2011 at least
Security vulnerability reports as a way to establish your l33t kr3z
The Haters Guide to the Williams-Sonoma Catalog
The debugger lied to you because the CPU was still juggling data in the air
The resource compiler will helpfully add window styles for you but if youre building a dialog templat
Thread affinity of user interface objects Addendum
Various ways of performing an operation asynchronously after a delay
What does the COINIT_SPEED_OVER_MEMORY flag to CoInitializeEx do
When studying performance you need to watch out not only for performance degradation but also unexpec
When you synthesize input with SendInput you are also synthesizing the timestamp
Why are taskbar live previews lost when you use Fast User Switching
Why are there both FIND and FINDSTR programs with unrelated feature sets

The Old New Thing - 2012 12

2012 year-end link clearance
2012 års Gävlebock gick upp i brand Igen
A question about endian-ness turns out to be the wrong question
Have you found any TheDailyWTF-worthy code during the development of Windows 95
How am I supposed to free the information returned by the GetSecurityInfo function
Ill tell you what I think of the new University of California logo once it finishes loading
It rather involved being on the other side of this airtight hatchway Writing to the application direc
Like the cake WS_EX_TRANSPARENT is a lie or at least not the entire truth
Microspeak v-team
Miss Denmark she is dressed as a mermaid because we couldnt secure the rights from LEGO
Replaying input is not the same as reprocessing it
The QuickCD PowerToy a brief look back
What celebration of Kwanzaa would be complete without Sandra Lees infamous Kwanzaa cake
What do HeapLock and HeapUnlock do and when do I need to call them
What is so special about the instance handle 0x10000000
What is the proper handling of WM_RENDERFORMAT and WM_RENDERALLFORMATS
Why cant you rename deleted items in the Recycle Bin
Why do BackupRead and BackupWrite require synchronous file handles
Why do I get notified for changes to HKEY_CLASSES_ROOT when nobody is writing to HKEY_CLASSES_ROOT
Why do I sometimes get classic buttons and sometimes themed buttons depending on the host process
Why do some shortcuts not support editing the command line and other properties
Why doesnt SHGetKnownFolderPath return the customized path
Why is it possible to create a toolbar with the wrong HINSTANCE And whats the right HINSTANCE anyway
Why is it so hard to write a program that requires UI Access privilege
Why was Pinball removed from Windows Vista
You too can use your psychic powers Spaces in paths

The Old New Thing - 2013 01

A brief history of the GetEnvironmentStrings functions
A few stray notes on Windows patching and hot patching
Eliot Changs list of things Asians hate
Finding a printer and then creating a shortcut to that printer
Heads-up Phone scammers pretending to be JPMorgan Chase MasterCard security
How can I write a script that finds my top-rated photos
How do I create a TaskDialog with a progress bar but no cancel button
If NTFS is a robust journaling file system why do you have to be careful when using it with a USB thu
If there were some sort of award for alternative commuting we wouldve been eligible
Microspeak pivot
Please hold your head perfectly still while you write up that memo
Poisoning your own DNS for fun and profit
STRICT_TYPED_ITEMIDS is the shell namespace version of the STRICT macro used by USER and GDI
State law requires you to watch this video of a singing hippo
The 20132014 Seattle Symphony subscription season at a glance
The changing name of the Microsoft event held in conjunction with Martin Luther King Jr Day
The enduring cultural fascination with Queens Bohemian Rhapsody
The somewhat misguided question of whether MapViewOfFile or WriteProcessMemory is faster
Understanding errors in classical linking The delay-load catch-22
Understanding the classical model for linking Sometimes you dont want a symbol to come along for a ri
Understanding the classical model for linking Taking symbols along for the ride
Understanding the classical model for linking You can override an LIB with another LIB and a LIB with
Understanding the classical model for linking groundwork The algorithm
What is this rogue version 10 of the HTML clipboard format
Whats the guidance on when to use rundll32 Easy Dont use it
When you have a SAFEARRAY you need to know what it is a SAFEARRAY of
Why does my program run really slow or even crash or stop crashing or crash differently if running un
Why doesnt HeapValidate detect corruption in the managed heap
Why was WHEEL_DELTA chosen to be 120 instead of a much more convenient value like 100 or even 10

The Old New Thing - 2013 02

Debug session Why is an LPC server not responding
Display a custom thumbnail for your application and while youre at it a custom live preview
Display an overlay on the taskbar button
Display control buttons on your taskbar preview window
Dreaming up strange inventions The combination urinalbidetwashing machine
For the Nitpickers Enhanced-mode Windows 30 didnt exactly run a copy of standard-mode Windows inside
How can I register my context menu command for all file types except one or other complex conditional
How do I launch a file as if it were a text file even though its extension is not txt
I speak German better in my dream than I do in real life
If you cant find the function find the caller and see what the caller jumps to
Is there a way to specify an icon to appear next to a menu item via the resource template
Isnt the CompletionKey parameter to CreateIoCompletionPort superfluous
Let me take this shortcut across Lake Saskatchewan
Microspeak bubble up
Now that version 4 of the NET Framework supports in-process side-by-side runtimes is it now okay to w
Obtaining the parsing name and pidl for a random shell object
Old trace logs in your dreams
Once you know something can be done doing it is much easier
Optimizing the Chilis dining experience
Psychic debugging Why your IContextMenuInvokeCommand doesnt get called even though you returned succe
The Essential Guide To Dim Sum
The annual sporting event involving a football that dare not speak its name and a digression into the
The curious pattern of pre-emptively rejecting the solution to your problem
This code would be a lot faster if it werent for the synchronization
What does -1IND mean A survey of how the Visual C runtime library prints special floating point value
What does 1J mean A strange corner case of the printing of special values
Whats the story of the onestopmid file in the Media directory
When the option becomes so second-nature you forget that its an option
You can ask the compiler to answer your calling convention questions

The Old New Thing - 2013 03

2013 Q1 link clearance Microsoft blogger edition
Adjust visual effects for best performance should really be called Adjust visual effects for crappies
Around and around and back and somewhere else
Closing holes in the update notification pattern
Derive the age of the planet Jupiter from the properties of liquid hydrogen and the planets surface t
Does this operation work when file system redirection is disabled The default answer is NO
Dreaming about a rather unusual guitar rehearsal
How can I see what files and shares are being accessed remotely and the general usage pattern for the
How do I convert a method name to a method index for the purpose of INTERFACEINFO
How do I hide Public Libraries on all computers in my organization
Inadvertently creating dress-like-Steve day
It may be your birthday but why stop at just the day Think big
Manipulating the positions of desktop icons
Marking a shortcut to say that it should not be placed on the Windows 8 Start page upon installation
Microsoft-internal Chuck Norris facts
Microspeak Science project
Playing with the Windows Animation Manager Fixing a sample
Playing with the Windows Animation Manager Moving lots of stuff around
Raymonds highly scientific predictions for the 2013 NCAA mens basketball tournament
Redistributing computers among offices for heating purposes
Space Mountain as if the lights were on and other DisneylandWorld secrets
The C language specification describes an abstract computer not a real one
The source of much confusion backed by the system paging file
The x86 architecture is the weirdo Structured exception handling
Theres no law that says two people cant have the same thing to eat
Using accessibility to monitor windows as they come and go
What are the conventions for managing standard handles
What are the dire consequences of not selecting objects out of my DC
When will GetMessage return -1
Why do Explorer and the command prompt interpret file times differently

The Old New Thing - 2013 04

Another meaning of the word leptoceratops
Another way to create a process with attributes maybe worse maybe better
Dangerous setting is dangerous This is why you shouldnt turn off write cache buffer flushing
Dark corners of CC The typedef keyword doesnt need to be the first word on the line
Dentistry in the Brazil-like future
Dont forget the fourth parameter to ReadFile and WriteFile is sometimes mandatory
Dreaming about games based on Unicode
Fake film project tries to create real film to hide fakeness and fails
Getting the current selection from an Explorer window
Getting the display name for a shell property
How can I figure out which user modified a file
How can I move an HTREEITEM to a new parent
How do I wait until all processes in a job have exited
If you dont know what youre going to do with the answer to a question then theres not much point in m
If youre going to use an interlocked operation to generate a unique value you need to use it before i
Is it legal to have a cross-process parentchild or ownerowned window relationship
Microspeak Tenet
On giving a name at the register to be called when your order is ready
Some trivia about the build 2011 conference
Technically not lying but not exactly admitting fault either
The importance of having a review panel of twelve-year-old boys episode 2
The jokes on you because PATH goes to Penn Station not Grand Central
The managed way to retrieve text under the cursor mouse pointer
The most expensive notepads in Microsoft history
The phenomenon of houses with nobody living inside for perhaps-unexpected reasons
The problem with adding more examples and suggestions to the documentation is that eventually people
Using opportunistic locks to get out of the way if somebody wants the file
Where did the research project RedShark get its name
Why does CoCreateInstance work even though my thread never called CoInitialize The curse of the impli
Your tenant and your lover in your dreams

The Old New Thing - 2013 05

A question about proper disposal of unwanted items with an unhelpful answer
Any setting you expose to the user you implicitly expose to applications
Copying a file to the clipboard so you can paste it into Explorer or an email message or whatever
Creating a simple pidl For the times you care enough to send the very fake
Even though mouse-move paint and timer messages are generated on demand its still possible for one to
Extending process attribute inheritance beyond its current boundaries
Hey look now Im Director of Strategic Planning oh and my name also changed to Oliver Lee
How can I display a live screenshot of a piece of another application
How do I customize the console properties for a shortcut to a console application
How do I get a window back on the screen when it moved far far away Windows 7 and 8 edition
How do I get the current value of the RSP register from a CC function No answer but a solution
How to tell the poseurs from the actual Windows developers
I wrote two lines of code yesterday
If you want to use a name for your file mapping dont just use the name of the file itself
Mathematical formulas are designed to be pretty not to be suitable for computation
Microspeak booked
Posted messages are processed ahead of input messages even if they were posted later
Reading mouse input from a console program and programmatically turning off Quick Edit mode
The importance of remembering parity in a back-and-forth race on your flying bicycle
The posted message queue vs the input queue vs the message queue
The secret lair of Administrative Assistants
Untangling the confusingly-named WM_UPDATEUISTATE and WM_CHANGEUISTATE messages
What are the scoping rules for variables in nested courtyards
What does GDI use biXPelsPerMeter and SetBitmapDimensionEx for
What happens if I manually post an auto-generated message into my message queue
Whats the point of SecureZeroMemory
Who sends the initial WM_UPDATEUISTATE message
Why am I getting LNK2019 unresolved external for my inline function
Why dont hotkeys for items on my Start menu work when I am in a fullscreen application
Your electric fan is trying to kill you and other cultural superstitions

The Old New Thing - 2013 06

2013 mid-year link clearance
A big little program Monitoring Internet Explorer and Explorer windows part 1 Enumeration
A big little program Monitoring Internet Explorer and Explorer windows part 2 Tracking navigations
A big little program Monitoring Internet Explorer and Explorer windows part 3 Tracking creation and d
A pathological program which ignores the keyboard and understanding the resulting behavior based on w
An introduction to COM connection points
Asynchronous input vs synchronous input a quick introduction
AttachThreadInput is like taking two threads and pooling their money into a joint bank account where
Dispatch interfaces as connection point interfaces
Displaying a property sheet for multiple files
Drawing content at a fixed screen position regardless of window position
How do I make it more difficult for somebody to take a screenshot of my window
I wonder if the Queen of England ever pulls this sort of prank in real life
Its the address space stupid
Microspeak to family well
Of what use is the RDW_INTERNALPAINT flag
Once you return from the WM_ENDSESSION message your process can be terminated at any time
Sharing an input queue takes what used to be asynchronous and makes it synchronous like focus changes
Solving the problem rather than answering the question Why does somebody want to write an unkillable
The default error mode SetErrorMode is not zero
Unexpected complexity of Swedish pronouns and escaping the resulting embarrassment
Wait this is not my regular bicycle commute home
When a CD gets stuck on infinite repeat during the night
When you share an input queue you have to wait your turn
Where did the names of the fonts Marlett and Verdana come from

The Old New Thing - 2013 07

A program for my nieces The ABCs part 1
A program for my nieces The ABCs part 2 choosing a font
A program for my nieces The ABCs part 3
A program for my nieces The ABCs part 4
At least its clear who will NOT be bunking together
Building on our program that draws content at a fixed screen position regardless of window position
From Microsofts mail room to the board room
I didnt go to build in San Francisco but Ill be at RAMP in Budapest
I wonder what sort of efficiency that house gets on the Autobahn
If you want to track whether the current thread owns a critical section you can use the critical sect
If youre not using the command line interpreter then the command line interpreter metacharacters mean
Im sure that Star Trek-themed parties exist so why has no one ever scheduled one as a Microsoft holid
It rather involved being on the other side of this airtight hatchway Disabling Safe DLL searching
It really wasnt that fancy a Swedish sentence
Microspeak Landing especially the heated kind
Nasty gotcha STGM_READ STGM_WRITE does not grant readwrite access
Nighttime pictures of London and Tokyo
Office Office Office Malkovich Office Office Office
Sometimes people can be so helpless Finding the owner of a Web page
The credit card with a half-million-dollar credit limit
Watch out for those out-of-control Canadian tour buses
What is the default cursor for a thread
Where is this CRC that is allegedly invalid on my hard drive
Why does Explorer sometimes show my server name in parentheses
Why dont elevated processes inherit their environment variables from their non-elevated parent
Why is LOCALE_SDURATION so dorky-looking
Why is the syntax for touching a file from the command prompt so strange
Why was the Windows source code trunk called the Blue Line
Windows 7 no longer tries to guess application size and other information
You can read as well as I can or maybe not

The Old New Thing - 2013 08

A dream about forgetting to deploy the backup brake pads
A practical reason for shutting down for the Mayan apocalyse
Adding a confirmation dialog to every dragdrop operation does not solve the problem
All IO on a synchronous file handle is serialized thats why its called a synchronous file handle
Can an x64 function repurpose parameter home space as general scratch space
Each time I move my mailbox moves further away
Generally speaking yanking the power plug unexpectedly should not be part of your business process
How can I find out which process and user is modifying a file
How can I write to a file only as long as nobodys looking
How do I control the order of the pages in property sheets from my shell extension
How do I convert a synchronous file handle into an asynchronous one
If I attach a file to an existing completion port do I have to close the completion port handle a sec
If I signal an auto-reset event and there is a thread waiting on it is it guaranteed that the event w
It rather involved being on the other side of this airtight hatchway Open access to the application d
Microspeak The train
On partially-constructed objects additional remarks not as interesting
Please dont wade across the Strait of Juan de Fuca
Sometimes sports-rule lawyering comes true The strikeout with only one thrown pitch
The case of the auto-hide taskbar
The challenge of improvisational historical comedy
The format of data and custom resources
The mathematical card game Krypto and reaching a level of proficiency where the rules break down
The mysterious ways of the params keyword in C
The tiny table sorter or you can write LINQ in JavaScript
Weak references have no effect on object lifetime
Whats the point of letting you change the GCL_CBCLSEXTRA if it has no effect
Why does BitConverterLittleEndian return false on my x86 machine
Why does the CLR report a NullReferenceException even if the referenced access is not exactly the nul
Why doesnt the Automatically move pointer to the default button in a dialog box work for nonstandard

The Old New Thing - 2013 09

2013 Q3 link clearance Microsoft blogger edition
Dont forget Unicode includes formatting characters which can be used to influence output formatting
Early versions of Aero Peek Aladdin Bat Signal and Squeegee
Entering the world of competitive Ring-Around-the-Rosie
Facilities jargon Energize
Forcing a file handle closed when it has been opened remotely
How can I determine how responsive my application is to input
How can I tell that I have a shell folder that represents My Computer
How can I tell that somebody used the MAKEINTRESOURCE macro to smuggle an integer inside a pointer
How does InterlockedIncrement work internally
How permanent is the Remove from this list action on the Start menu
How to rescue a broken stack trace on x64 Recovering the stack pointer
I dreamed that I was in an alternate-universe Samuel L Jackson movie
If you had to deal with preschoolers all day youd need a nap too
If your product is client-managed how do you sell the server
It rather involved being on the other side of this airtight hatchway Creating problematic files in a
Mom and dads event-filled first day of school
Playing a sound every time the foreground window changes
Programmatically editing the metadata of an audio file
Providing a custom autocomplete source for an edit control
Punctuation is becoming increasingly decorative and less functional
Raymonds subjective biased unfair and completely wrong characterization of the sounds of several East
Sometimes my dreams are entirely uneventful
SubtractRect doesnt always give you the exact difference
Wait so does moving a file recalculate inherited permissions or doesnt it
What is the official name of the most popular work visa in the United States
When a program is launched via DDE and there are multiple servers which one is used
Why are my posted messages getting lost when the user drags my window around
Why does Internet Explorer put tab stops at 8-character intervals instead of 4 like all right-thinkin

The Old New Thing - 2013 10

But instead they decided to build the Great Wheel
C corner case You can implement pure virtual functions in the base class
Distinguishing between asking for help with a product and asking for help with a products installatio
Filtering the folders that appear in the Browse for Folder dialog
Happy 110th birthday Professor Alyea
Help me optimize this code which enumerates all possible GUIDs
How do I find out what size the window manager would have chosen for my window
I wrote FAT on an airplane for heavens sake
I wrote my thesis on an airplane for heavens sake
If there is no 16-bit emulation layer in 64-bit Windows how come certain 16-bit installers are allowe
It rather involved being on the other side of this airtight hatchway Planting DLLs into directories o
Just because I dont deny something doesnt make it true
My those threads start up really fast nowadays
Opening and manipulating Internet Explorer windows programmatically
Printing the contents of the clipboard as text to stdout
The case of the redirected standard handles that wont close even though the child process has exited
The financial acumen of sea turtles
The guide to trading candy
The hierarchy of user education as interpreted by a vice president
The imaginary experience of dining at an underground restaurant
The management of memory for resources in 16-bit Windows redux
The relationship between module resources and resource-derived objects in 16-bit Windows
The relationship between module resources and resource-derived objects in 32-bit Windows
Using GetLogicalProcessorInformationEx to see the relationship between logical and physical processor
Using a toy cash register as a keyboard doesnt add up
Using the TAB key to navigate in non-dialogs redux
What is the inverse of AdjustWindowRect and AdjustWindowRectEx
Whats the difference between CopyIcon and DuplicateIcon
When should I use the FIND_FIRST_EX_LARGE_FETCH flag to FindFirstFileEx
Why does my window get a WM_ACTIVATE message when it isnt active

The Old New Thing - 2013 11

A possibly unbeatable record for the shortest amount of time between an email message and its resend
CoUninitalize will ask a DLL if it is okay to unload now but the answer is a foregone conclusion
Extracting GPS coordinates from a photo and plotting it on a map
How can I launch an unelevated process from my elevated process and vice versa
How did Raymond discover his carrier-screaming talent And his homemade Marauders Map
How do I get the effect of CW_USEDEFAULT positioning on a window Ive already created
How do I get the path to the default users profile
If you try to declare a variadic function with an incompatible calling convention the compiler secret
Manipulating the zone identifier to specify where a file was download from
Microspeak Spinning up or kicking off a build
My friend lived in a tiny house with an enormous garage
My friend lived in an apartment inside a museum
Notes on gift card and gift certificates in the state of Washington
On the various ways of getting the current time and date in Win32
Partially eliminating the need for SetThreadpoolCallbackLibrary and reducing the cost of FreeLibraryA
Restoring symbols to a stack trace originally generated without symbols
The case of the DLL that refuses to load
The complexity of modern voting or at least modern dream voting
Things that can happen when your kitchen gets taken over by others
What is the point of FreeLibraryAndExitThread
Whats the point of the various WhenCallbackReturns functions
Why cant I create my dialog with DialogBox DialogBoxParam CreateDialog CreateDialogParam or the indir
Why did Raymond bring a knitting bag to every meeting
Why dont all of my documents show up when I arrange my Documents library by Name
Why is my FormatMessage call crashing trying to read my insertion parameter
Why is the Program Files directory called Program Files instead of just Programs

The Old New Thing - 2013 12

2013 year-end link clearance
Brief QampA on the HeapEnableTerminationOnCorruption heap information flag
Creating custom tasks on a jump list
Destroying all child processes and grandchildren when the parent exits
Disabling the PrtSc key by blocking input
Essays from the funniest man in Microsoft Research
How can I get the list of programs the same way that Programs and Features gets it
How do I configure the timeout used by UI0Detect Interactive Services Detection service
How do I display an RTL string in a notification balloon on an LTR system
How do you intercept taskbar notification balloons
I think were going to be getting frozen leftovers for lunch today
Is it wrong to call SHFileOperation from a service
Logging the foreground process as it changes
Mysterious email possible social engineering whatever it was it didnt work
New Years Eve is sometimes a stressful occasion
Sir is this your high-speed ferry
Some vice presidents forget that not everybody attends the same meetings that they do
Tales from The Box A survey of crackpots in physics
That doesnt sound like South Frisian to me
That fee was so that we wouldnt have to raise our prices
The chain of stories triggered by seeing a package of Ahoj-Brause
The walls of my friends house sometimes randomly got corrupted
Theres no seating up there so you just have to hang on for dear life
This was only a test if this had been an actual concert
Turning off the disco lights on the Start screen
Whats the difference between the wParam of the WM_NOTIFY message and the idFrom in the NMHDR structur
Whats up with the registry key HKEY_CLASSES_ROOTCLSIDCLSID
Whether your application should display its content in RTL should be based on the content
Why doesnt the New Folder command work in the root of a redirected drive resource in a Remote Desktop
Why is GetWindowLongPtr returning a garbage value on 64-bit Windows
Wouldnt the Recycle Bin sample program have been simpler without COM

The Old New Thing - 2014 01

Can process IDs be greater than 64000 Because were seeing process IDs greater than 64000
Can you dllexportdllimport an inline function
Commissioner Bud Selig was named the first recipient of the Commissioner Bud Selig Leadership Award
Creating a listview with checkboxes on some items but not others
Excuses college students use for missing assignments
Hello Kitty takes a rather inefficient trip to the United States
How can I make a callback function a member of my C class
How do I get a high resolution icon for a file
How do I hit the WinPrintScreen hotkey if my tablet doesnt have a PrtSc key
How do I manually recalculate ACLs on a file based on the containing directory
How do I obtain the computer manufacturers name via C
If the cursor clip rectangle is a global resource how come I cant change it with ClipCursor
Jan-Keno Janssen decides to rent a bicycle to get around Las Vegas this is what happens
Non-psychic debugging If somebodys complaining that a collection should be empty but isnt you might w
Non-psychic debugging Looking for leaked objects by their vtable
One of my favorite error codes Optional parameter missing
Psychic debugging Why messages arent getting processed by your message pump
The 20142015 Seattle Symphony subscription season at a glance
The Dead GrandmotherExam Syndrome
The Visual Effects dialog box just tells you what you want to hear
The case of the missing context menu verbs
The case of the mysterious Alternate Data Stream query
The curse of the leading zero
There are so many things that call themselves message queues
We know your job is hard you dont have to show us
What clock do MSGtime and GetMessageTime use
What happened in real-mode Windows when somebody did a longjmp into a discardable segment
When the Web page says that a tool is not supported it means that if you find a problem and contact t
Why chicken wings dominate Super Bowl snack time
Why does my setup program detect the operating system incorrectly the second time I run it

The Old New Thing - 2014 02

A simple email introduction Fan mail
Debugging Diagnosing why malloc is failing
Excuses I learned from babies
Execute a file as if it were a program even though its extension is not EXE
How can I detect that my program was run from Task Scheduler or my custom shortcut or a service or wh
How can I make a WNDPROC or DLGPROC a member of my C class
How can I make sure my program is launched only from my helper program and no other parent
How do I prevent folders like My Pictures from being recreated
If an asynchronous IO completes synchronously is the hEvent in the OVERLAPPED structure signaled anyw
If you cancel an operation while its in progress then its not surprising that its only half-done
Logging the contents of every message box dialog via automation
Microspeak Party in various forms
Nieces sometimes extrapolate from insufficient contextual data
Racing email against a snail
The Grand Dukes monocle is an affectation
The United States Team uniforms for the opening ceremony is rather hideous and illegal and a bit anac
The heavy metal umlaut encroaches into Seattle real estate
The new research citation format if students got to design it
VirtualLock locks your memory into the working set even if your threads are blocked
What does the SEE_MASK_UNICODE flag in ShellExecuteEx actually do
What is the programmatic equivalent to unchecking the box to prevent a file from having its contents
What is this extra thread in my process
When someone proposes marriage bear in mind that there is a question that needs to be answered
When something gets added to a queue it takes time for it to come out the front of the queue
When will the static control automatically delete the image loaded into it and when is it the respons
Why are leading digits converted to language-specific digit shapes but not trailing digits and how do
Writing automation to wait for a window to be created and dismiss it

The Old New Thing - 2014 03

A puzzle involving dynamic programming or maybe it doesnt
Adventures in automation Dismissing all message boxes from a particular application but only if they
Can CoCreateGuid ever return GUID_NULL
Converting from a UTC-based SYSTEMTIME directly to a local-time-based SYSTEMTIME
Different senses of scale create different travel expectations
Enumerating set partitions with Bell numbers and Stirling numbers of the second kind
Functions that return GDI regions rarely actually return regions
Geeky t-shirt alert Windows 7s so-called God Mode
Going for the facts Who is displaying this message box
How do I create an IShellItemArray from a bunch of file paths
How do I disable zone markers for downloaded files so that Explorer stops being a nag about running d
How do I show the contents of a directory while respecting the users preferences for hidden and super
I think this persons monitor is broken It doesnt know how to render text in capital letters
On live performances of Star Trek
Operations jargon Internet egress
Programmatically uploading a file to an FTP site
Raymonds highly scientific predictions for the 2014 NCAA mens basketball tournament
The dangers of buffering up posted messages and then reposting them later
Were currently using FILE_FLAG_NO_BUFFERING and FILE_FLAG_WRITE_THROUGH but we would like our WriteFi
What order does the DIR command arrange files if no sort order is specified
What two-year-olds think about when they are placed in time-out
When visitors to the United States underestimate the size of the country
Why Johnny cant read music
Why cant I __declspecdllexport a function from a static library
Why do I have to add 1 to the color index when I set it as the hbrBackground of a window class
Why do I have to hit an arrow key before a keyboard-initiated Move operation will follow the mouse
Why does the DirectoryGetFiles method sometimes ignore html files when I ask for htm

The Old New Thing - 2014 04

A discovered quirk is just few steps away from becoming a feature
Buggy milk cartons beeping computers and other silliness
Enumerating subsets with binomial coefficients
How can I get information about the items in the Recycle Bin from script
How can I get the Windows 8 touch keyboard to display autocomplete suggestions like the Bing app
How do I programmatically create folders like My Pictures if they were manually deleted
How do I set a breakpoint on a function whose name contains spaces or other special characters
I thought you could use SWP_FRAMECHANGED to force a control to recalculate its properties after a cha
It rather involved being on the other side of this airtight hatchway Invalid parameters from one secu
Its bad enough for a guest to demolish the hosts house demolishing an unrelated persons house is taki
Le Chateliers Principle in action Administrative overrides
Microspeak bar check
Raymonds house rules for Easter Egg Hunts
Showing a balloon tip at a specific position then removing it
The StartRunNoHOMEPATH policy affects whether the users HOME path is the current directory when you u
The geeky thrill of discovering that two things are really the same thing just with different labels
The gradual erosion of the car trip experience part 2
There is no complete list of all notifications balloon tips in Windows
Using WM_SETREDRAW to speed up adding a lot of elements to a control
What happens to my COM server-side object when clients die unexpectedly
Why does PrintWindow hate CS_PARENTDC redux
Why does the access violation error message put the operation in quotation marks Is is some sort of e
Why does the common file save dialog create a temporary file and then delete it
Why is Rundll32 called Rundll32 and not just Rundll
Windows is not a Microsoft Visual CC Run-Time delivery channel

The Old New Thing - 2014 05

An extensible interlocked arithmetic function via lambdas
Cargo-cult registry settings and the people who swear by them
Creating a simple shell item just as fake as a simple pidl
Dialog boxes return focus to the control that had focus when you last switched away how do I get in o
Enumerating bit sequences with isolated zero-bits via the Fibonacci recurrence
Even if youre the President your mother still has the power to embarrass you
Eventually we may find out where notes eight through twelve came from
Find the index of the smallest element in a JavaScript array
Get your hex wrench ready because here comes the Ikea bicycle
Getting the location of the Close button in the title bar
How can you use both versions 5 and 6 of the common controls within the same module
How do I change among the three levels of play in Space Cadet Pinball
How do I extract an icon at a nonstandard size if IExtractIconExtract tells me to go jump in a lake
How to take down the entire Internet with this one weird trick according to Crisis
If a lot of settings are ignored when set in a DLL why bother even letting you set them on a DLL
Is WriteProcessMemory atomic
It rather involved being on the other side of this airtight hatchway Denial of service by high CPU us
Letting the boss think your project is classier than it really is
Only senior executives can send email to the All Employees distribution list but mistakes still happe
The code names for various subprojects within Windows 95
The mystery of the icon that never appears
Warehouse holding 1000 cans of surströmming burns to the ground insert punch line here
When was the WM_COPYDATA message introduced and was it ported downlevel
Why does GetFileVersionInfo map the whole image into memory instead of just parsing out the pieces it
Why does my radio button group selection get reset each time my window regains activation
Why does saving a file in Notepad fire multiple FindFirstChangeNotification events
Why is the debugger telling me I crashed because my DLL was unloaded when I see it loaded right here

The Old New Thing - 2014 06

10 is the new 6
2014 mid-year link clearance
Adding a sound to the AltTab window
As long as your file names meet operating system requirements you can use whatever you like the rest
Can we continue to call FindNextFile with the same handle that returned an error last time
Closing over the loop variable is just as harmful in JavaScript as it is in C and more cumbersome to
Enumerating bit strings with a specific number of bits set binomial coefficients strike again
Finding the Run as administrator command a game of hide-and-seek
For Honor For Excellence For Pizza
Getting past the question to solving the problem episode 20140625
Getting the location of the Close button in the title bar from Windows 2000 or Windows XP
Improving the performance of CF_HDROP by providing file attribute information
Link-time code generation invalidates a lot of classical assumptions about linking
Microspeak Brownbag
Non-classical processor behavior How doing something can be faster than not doing it
Obtaining information about the users wallpaper on multiple monitors
Once you go input-idle your application is deemed ready to receive DDE messages
The social interactions in two preschool classes in graphic form
Undefined behavior can result in time travel among other things but time travel is the funkiest
What happened to the Shut Down menu in classic Task Manager
Who would ever write a multi-threaded GUI program
Why did it take so long for Windows to support a taskbar on more than one monitor
Why do network servers sometimes show up as a Recycle Bin Location

The Old New Thing - 2014 07

Communication between moving vehicles during the narrow window of the late 1990s
Customing the standard color-picker dialog
Did the Windows 95 interface have a code name
Enumerating integer compositions the return of the binomial coefficients
Finding the shortest path to the ground while avoiding obstacles
How can I get the URL to the Web page the clipboard was copied from
How do I configure Windows Update programmatically
How do I obtain the computer manufacturers name from C
How do I turn off email reminders for my Windows Live calendar and disable the birthday calendar whil
If I duplicate a handle can I keep using the duplicate after closing the original
If you want to be notified when your app is uninstalled you can do that from your uninstaller
It rather involved being on the other side of this airtight hatchway Surreptitious file access by adm
Microspeak Tell Mode Ask Mode
Outdoor Trek Mirror Mirror starts this weekend
Redirecting the Favorites folder is technically legal but you wouldnt like it
The alternate story of the time one of my colleagues debugged a line-of-business application for a pa
The time one of my colleagues debugged a line-of-business application for a package delivery service
Using the REFIIDvoid pattern for returning COM objects for future-proofing and to avoid problems with
What does it mean when GetQueuedCompletionStatus return ERROR_SEM_TIMEOUT
What is the default size of the Recycle Bin and how can an administrator control the size of the Recy
What is the strange garbage-looking string in the command value of a static verb
When I send a WM_GETFONT message to a window why dont I get a font
When will GetSystemWindowsDirectory return something different from GetWindowsDirectory
Why are only some of the Windows 7 system notification icons colorless
Why does Outlook map CtrlF to Forward instead of Find like all right-thinking programs

The Old New Thing - 2014 08

Before claiming that a function doesnt work you should check what youre passing to it and what it ret
Customers not getting the widgets they paid for if they click too fast -or- In C the operator is not
Deleting elements from an JavaScript array and closing up the gaps
Dispelling the myths rumors and innuendo surrounding the QueryPerformanceCounter function
Enumerating the ways of choosing teams in a group of players
How can I detect that a users SID has changed and recover their old data
How do I read the Double-click to open an item single-click to select setting in Folder Options
If you want to set a threads apartment model via ThreadCurrentThreadApartmentState you need to act qu
If youre looking for the code that displays a particular dialog box the most directly way to find it
Its time we face reality my friends Were not rocket scientists
Keep your eye on the code page C edition the mysterious third code page
Keep your eye on the code page C edition warning about DllImport
Microspeak 1 1 is not zero
My friend and his buddy invented the online shopping cart back in 1994
News flash Big houses cost more to maintain
Revival of the Daleks Act One Scene One
Since clean-up functions cant fail you have to soldier on
Some reasons not to do anything scary in your DllMain part 3
Taking advantage of the fact that the handle returned when you create a kernel synchronization object
The case of the orphaned LpdrLoaderLock critical section
The latest technologies in plaintext editing NotepadConf
The scope of the C checkedunchecked keyword is static not dynamic
Where does the Installed Updates control panel get the install date from
Why does Explorer say File too large for my custom file system when the problem has nothing to do wit
Why does the OpenThread function behave differently when the target thread belongs to another process

The Old New Thing - 2014 09

A lie repeated often enough becomes the truth The continuing saga of the Windows 31 blue screen of de
Aha I have found a flaw in the logic to detect whether my program is running on 64-bit Windows
Enumerating all the ways of making change
I marked my parameter as optional so why do I get an RPC error when I pass NULL
I wrote the original blue screen of death sort of
If a process crashes while holding a mutex why is its ownership magically transferred to another proc
Its a trap Employment documents that require you to violate company policy
Marshaling wont get in your way if it isnt needed
Microspeak spend
Piping to notepad
Poor mans comments Inserting text that has no effect into a configuration file
Receiving a notification any time the selection changes in an Explorer window
Simulating media controller buttons like Play and Pause
Steve Ballmer did not write the text for the blue screen of death
The citizenship test is passfail theres no blue ribbon for acing it
The grand ambition of giving your project the code name Highlander
The history of Win32 critical sections so far
The stream pointer position in IDataObjectGetData and IDataObjectGetDataHere is significant
The wisdom of seventh graders The emergency survival kit
What did Windows 31 do when you hit CtrlAltDel
What is the story of the mysterious DS_RECURSE dialog style
Who wrote the text for the CtrlAltDel dialog in Windows 31
Why does misdetected Unicode text tend to show up as Chinese characters
Why does the timestamp of a file increase by up to 2 seconds when I copy it to a USB thumb drive
You can use a file as a synchronization object too

The Old New Thing - 2014 10

A question about preventing the system from going to the idle state turns out to be misguided
Debugging a hang Chasing the wait chain inside a process
Enumerating cyclical decompositions with Stirling numbers
Enumerating notification icons via UI Automation
Enumerating the ways of distributing n balls into k boxes
How can I detect programmatically whether the 3GB switch is enabled
How do I disable Windows 8 touch contact visualizations for my application
If only DLLs can get DllMain notifications how can an EXE receive a notification when a thread is cre
In the red corner EXCEPTION_INT_DIVIDE_BY_ZERO and STATUS_INTEGER_DIVIDE_BY_ZERO and in the blue corn
Is there a way to disable a specific balloon notification without disabling all of them
Microspeak All-up
Scripting an Internet Explorer window
Some parts of an interface can change but others cant
Standard handles are really meant for single-threaded programs
The GetCurrentThread function is like a check payable to Bearer What it means depends on whos holding
The case of the file that wont copy because of an Invalid Handle error message
The contents of the Start page are not programmatically accessible
The great thing about regular expression languages is that there are so many to choose from
When are global objects constructed and destructed by Visual C
Why is 0x00400000 the default base address for an executable
Why is the FAT driver called FASTFAT Why would anybody ever write SLOWFAT
Why is there a 64KB no-mans land near the end of the user-mode address space
You can name your car and you can name your kernel objects but there is a qualitative difference betw

The Old New Thing - 2014 12

2014 year-end link clearance
Counting array elements which are below a particular limit value using SSE
Creating double-precision integer multiplication with a quad-precision result from single-precision m
Debugging walkthrough Access violation on nonsense instruction
Detecting whether a SID is well-known SID
Even the publishing department had its own Year 2000 preparedness plan
How can I let my child use an app that I bought from the Windows Store
How can I query the location of the taskbar on secondary monitors
How did protected-mode 16-bit Windows fix up jumps to functions that got discarded
How did that program manage to pin itself to my taskbar when I installed it
If my WM_TIMER handler takes longer than the timer period will my queue fill up with WM_TIMER message
If you get a procedure address by ordinal you had better be absolutely sure its there because the fai
If you set up roaming profiles you are expected to set up each machine identically for the most part
Integer signum in SSE
It rather involved being on the other side of this airtight hatchway Account vulnerable to Active Dir
Its not too late okay maybe its too late to get this gift for the physicist who has everything
Killing a window timer prevents the WM_TIMER message from being generated for that timer but it doesn
Microspeak Redlines
My pants are fancy
Notes on calculating constants in SSE registers
Setting clearing and testing a single bit in an SSE register
The Softsel Hot List for the week of December 22 1986
The psychology of confirmation or something I dont know what to call it
What happens if I dont paint when I get a WM_PAINT message
What states are possible in a DRAWITEMSTRUCT structure
When corporate policies meet precision scientific equipment

The Old New Thing - 2015 02

Another way to make sure nobody sends you feedback
Customizing item enumeration with IShellItem the old-fashioned way
Further adventures in trying to guess what encoding a file is in
If you wonder why a function cant be found one thing to check is whether the function exists in the f
Microspeak Light up
Nice job you got an A minus from Bill
Non-capturing C lambdas can be converted to a pointer to function but what about the calling conventi
Reading the word under the cursor via UI Automation
RegNotifyChangeKeyValue sucks less
Solving the problem rather than answering the question How can a non-administrator modify a registry
Staying cool is one of the skills of a corporate president
The 20152016 Seattle Symphony subscription season at a glance
The SuspendThread function suspends a thread but it does so asynchronously
Use GFlags to catch the silent killer silent but deadly
Using thread pool cleanup groups to clean up many things at once
What is this inconsistent heap state that MSDN warns me about during DLL_PROCESS_DETACH
Whats the point of using a custom timer queue if there is a default one already
When asking about the capacity of a program you also need to consider what happens when you decide to
Who is this rogue operative that filled my object with 0xDD then sent me a message
Why does the mouse cursor jump a few pixels if you click on the very bottom row of pixels on the task
Why was the replacement installer for recognized 16-bit installers itself a 32-bit program instead of

The Old New Thing - 2015 03

A Venn diagram demonstrating the dining options in one of the new cafeterias
A question about the FileTimeToLocalFileTime function turned out to be something else
CancelIoEx can cancel IO on console input which is kind of nice
Connecting some blocks Tell me more about the current image in my wallpaper slide show
Debugging walkthrough Access violation on nonsense instruction episode 2
Does the CLR really call CoInitializeEx on the first call to unmanaged code even if you dont deal wit
Dubious security vulnerability Copying a program and running the copy
Finding the constructor by scanning memory for the vtable
Flaw reported in Windows 95
How can I programmatically resize a listview column to fit its contents
How do I make a boldface item on a context menu
I want you to chase your sisters until they throw up
Microspeak Headcount req and related personnel terms
Modifying the CS_NOCLOSE style does affect all windows of the class just not necessarily in an immedi
Setting up a new computer often results in leftover slot covers so what do you do with the slot cover
Sure we have RegisterWindowMessage and RegisterClipboardFormat but where are DeregisterWindowMessage
Switching on a tuple Sneaky trick
The more times you use the word simply in your instructions the more I suspect you dont know what tha
Travel tip Dont forget your car on the ferry
Under what conditions will the IUnknownAddRef method return 0
What was the relationship between Outlook and Outlook Express
Whats the difference between PathIsSystemFolder and Protected Operating System Files
Why are the dimensions of a maximized window larger than the monitor

The Old New Thing - 2015 04

Access to a files attributes is controlled by two things
After I encrypt memory with CryptProtectMemory can I move it around
How can I tell if a file is an image of some type
How did the scopes for the CryptProtectMemory function end up in a strange order
How do I extract the path to Control Panel from this shortcut so I can launch it
How to find the IP address of a hacker according to CSI Cyber
If more than one object causes a WaitForMultipleObjects to return how do I find out about the other o
In the Seattle area people treat you nicer once they learn your last name is Gates
Is the atom returned by RegisterClassEx a real atom
It appears that some programmers think that Windows already ships with that time machine the Research
It rather involved being on the other side of this airtight hatchway Invalid parameters from one secu
On the ways of creating a GUID that looks pretty
Opening the classic folder browser dialog with a specific folder preselected
The details of the major incident were not clearly articulated but whatever it is its already over
Under what circumstances will a dialog box not use the caption specified in the resource file
What was the starting point for the Panther Win32 kernel
When I set the force X off policy to Disabled why doesnt it force X on
Why are there both TMP and TEMP environment variables and which one is right
Why cant I have variadic COM methods
Why did the original code for FINDCOM use lop as a label instead of loop
Why is CreateToolhelp32Snapshot returning incorrect parent process IDs all of a sudden
Why is the SystemDateCreated property off by a few seconds
Wow they really crammed a lot into those 410 transistors