The Old New Thing
Windows stack limit checking retrospective: MIPS
Windows stack limit checking retrospective: x86-32, also known as i386
How do compilers ensure that large stack allocations do not skip over the guard page?
A snappy answer when asked about dressing casually at IBM
The fine print giveth and the bold print taketh away: The countdown timer
Learning to read C++ compiler errors: Ambiguous overloaded operator
When ReadDirectoryChangesW reports that a deletion occurred, how can I learn more about the deleted thing?
The mystery of the posted message that was dispatched before reaching the main message loop
Aha, I found a counterexample to the documentation that says that QueryPerformanceCounter never fails
Just for fun: A survey of write protect notches on floppy disks and other media
What sort of horrible things happen if my dialog has a non-button with the control ID of IDCANCEL?
Intercepting messages inside IsDialogMessage, fine-tuning the message filter
Intercepting messages inside IsDialogMessage, installing the message filter
Intercepting messages before IsDialogMessage can process them
Customizing the ways the dialog manager dismisses itself: Isolating the Close pathway
Customizing the ways the dialog manager dismisses itself: Detecting the ESC key, second (failed) attempt
The 2026/2027 Seattle Symphony subscription season at a glance
Customizing the ways the dialog manager dismisses itself: Detecting the ESC key, first (failed) attempt
Exploring the signals the dialog manager uses for dismissing a dialog
Could WriteProcessMemory be made faster by avoiding the intermediate buffer?
Microspeak: Escrow
It rather involved being on the other side of the airtight hatchway: Tricking(?) a program into reading files
How can I distinguish between the numeric keypad 0 and the top-row 0 in the WM_CHAR message?
How can I distinguish between the numeric keypad 0 and the top-row 0 in the WM_KEYDOWN message?
How do I suppress the hover effects when I put a Win32 common controls ListView in single-click mode?
How did Windows 95 get permission to put the Weezer video Buddy Holly on the CD?
What should I do if a wait call reports WAIT_ABANDONED?
How can I prevent the user from changing the widths of ListView columns in version 5 of the common controls?, part 2
How can I prevent the user from changing the widths of ListView columns in version 5 of the common controls?
Super Bowl LX creates an opportunity for symphonic friendly wagering
How can I prevent the user from changing the widths of ListView columns?
Some small stories about the giant satellite dish antenna that was behind Microsoft Building 11
Studying compiler error messages closely: Input file paths
Why not store the SAFEARRAY reference count as a hidden allocation next to the SAFEARRAY?
How can I retain access to the data in a SAFEARRAY after my method returns?
Why did I lose the data even though I called SafeArrayAddRef?
A digression on the design and implementation of SafeArrayAddRef and extending APIs in general
What’s the difference between SafeArrayAccessData and SafeArrayAddRef?
C++ has scope_exit for running code at scope exit. C# says “We have scope_exit at home.”
A simple helper function for attaching a progress handler to a Windows Runtime IAsyncActionWithProgress or IAsyncOperationWithProgress
On the proper usage of a custom Win32 dialog class
Microspeak: On fire, putting out fires
What was the secret sauce that allows for a faster restart of Windows 95 if you hold the shift key?
How can I get the tab index number from a dialog box control?
When programs assume that the system will never change, episode 4: Stealing strings
Clipping the focus item when looking for its on-screen location, part 3
Clipping the focus item when looking for its on-screen location, part 2
Clipping the focus item when looking for its on-screen location
Using Active Accessibility to find out where the focus item is
Using Active Accessibility to find out where the Windows caret is
How can I find out where the Windows caret is?
Swapping two blocks of memory that reside inside a larger block, in constant memory, refinement
How can you swap two non-adjacent blocks of memory using only forward iterators?
How can you swap two adjacent blocks of memory using only forward iterators?
Swapping two blocks of memory that reside inside a larger block, in constant memory
2025 year-end link clearance
Understanding and mitigating a stack overflow in our task sequencer
Additional notes on color-keyed overlays as a way of doing smooth video rendering
The Gävle Goat (Gävleboken) succumbs in 2025 to a new menace
How can I detect that the system is running low on memory? Or that my job is running low on memory?
Why are we worried about memory access semantics? Full barriers should be enough for anybody
Reading the fine print, episode 4: Holiday promotions
Why is the last letter of my string not making it to the clipboard?
Why does my Ctrl+M accelerator key activate when I press the Enter key?
When irate product support customers demand to speak to Bill Gates
All the other cool languages have try…finally. C++ says “We have try…finally at home.”
A shortcut gives me a weird path for a program shortcut that doesn’t point to the executable, so what is it?
Concluding thoughts on our deep dive into Windows clipboard text conversion
Deducing the consequences of Windows clipboard text formats on UTF-8
Why is the Windows clipboard taking the scenic route when converting from CF_TEXT to CF_OEMTEXT?
Misunderstanding what the Cricket Celebration Bowl is
The Windows clipboard automatic text conversion algorithm is path-dependent
Resolving an ambiguity in the Windows clipboard automated text conversion table
Studying the various locale mismatch scenarios in Windows clipboard text format synthesis
How does Windows synthesize the CF_LOCALE clipboard format?
How does Windows synthesize CF_UNICODETEXT from CF_TEXT and vice versa?
How does Windows synthesize CF_OEMTEXT from CF_TEXT and vice versa?
How can my process read its own standard output?
How can I read the standard output of an already-running process?
How do I check whether the user has permission to create files in a directory?
Microspeak: Big rocks
How do I get my edit control text to be autoselected when I choose it to be the default focus in my dialog?
How can I have a Win32 drop-down combo box with a read-only edit control?
Message-only windows are for messaging, not as a convenient victim for hosting UI
At what point in the Windows development cycle is it too late to change the text of a translatable string?
The apocryphal origins of the Hot Dog Stand color scheme
Why does XAML break down when I have an element that is half a billion pixels tall?
Maybe somebody can explain to me how weak references solve the ODR problem
In the commit-on-demand pattern, what happens if an access violation straddles multiple pages?
Is WriteProcessMemory faster than shared memory for transferring data between two processes?
Microspeak: Little-r
How can I detect that Windows is running in S-Mode, redux
I can use WM_COPYDATA to send a block of data to another window, but how does it send data back?
Could we use CTAD to simplify the use of WRL’s Callback function?
Non-recursively deleting a binary tree in constant space: Rotating the tree
Behind the scenes on how Windows 95 application compatibility patched broken programs
How did Windows 3.1 distinguish two different programs that happened to share the same executable name?
Non-recursively deleting a binary tree in constant space: Restructuring the tree
Non-recursively deleting a binary tree in constant space: Synthesizing the parent pointer
Non-recursively deleting a binary tree in constant space: Traversal with parent pointers
The Microsoft SoftCard for the Apple II: Getting two processors to share the same memory
Why does SHFormatDateTime take an unaligned FILETIME?
Microspeak: turn into a pumpkin
Trying to build a XAML tree in code throws a “No installed components were detected” exception
What to do when you have a crash in the runtime control flow guard check
How did the Windows 95 user interface code get brought to the Windows NT code base?
Dubious security vulnerability: Denial of service by loading a very large file
The early history of the Windows Runtime PropertyValue and why there is a PropertyType.Inspectable that is never used
Windows Runtime design principle: Properties can be set in any order
What makes cheap_steady_clock faster than std::chrono::high_resolution_clock?
Microspeak: The hockey stick on wheels
What about the icons in pifmgr.dll?
Using RAII to remedy a defect where not all code paths performed required exit actions, follow-up
Using RAII to remedy a defect where not all code paths performed required exit actions
Why can you increment a reference count with relaxed semantics, but you have to decrement with release semantics?
I remember taking a screen shot of a video, and when I opened it in Paint, the video was playing in it! What witchcraft is this?
API design principle: Don’t tempt people to divide by zero
The self-assignment principle for Windows Runtime properties: Don’t change behavior based on whether a property has been written to
The self-assignment principle for Windows Runtime properties applies to default values
Windows Runtime API design principles around read-write properties: Idempotence and self-assignment
Remembering the end of support for VRML in Internet Explorer
Code comments should apply to the state of the system at the point the comment “executes”
Can we get weak functions for static linking? The Visual C++ compiler says “We have weak functions at home”
The problem with inferring from a function call operator is that there may be more than one
How do I convert a FILETIME to a C++ clock like std::system_clock or winrt::clock?
Microspeak: Convicted
How can I enumerate the overflow icons in the Notification Area without showing them?
Why didn’t Windows 95 setup install a miniature Windows 95 so that it could be written as a 32-bit program?
Samples note: Use comments to describe what code does, not what you wish the code would do
Why is Windows still tinkering with critical sections?
Another lesson learned from the Windows 98 on-stage USB blue screen
Why was Windows 3.0’s WinHelp called an online help system when it ran offline?