The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Microspeak elaborated: Isn’t escrow just a release candidate by another name?
Yes, but the name is a psychological trick.
In memory of the man who put red and green squiggles under words
Starting in Word and expanding to nearly every other word processor, and even things that aren't word processors.
What does it mean when the bottom bit of my HMODULE is set?
A special kind of <CODE>HMODULE</CODE>.
Why doesn’t GetLastInputInfo() return info for the user I’m impersonating?
It doesn't care about impersonation, says so on the tin.
Windows stack limit checking retrospective, follow-up
Choosing the register to use to pass the desired stack allocation size.
Retrofitting the WM_COPYDATA message onto Windows 3.1
It was carefully designed to be trivial.
The time the x86 emulator team found code so bad that they fixed it during emulation
Offensive content in the eyes of a software engineer.
How can I schedule work on a thread pool with low latency?
The thread pool is designed for throughput, not latency.
Understanding the rationale behind a rule when trying to circumvent it
I mean, technically <I>I</I> didn't do it.
What’s the opposite of ClipCursor that lets me exclude the cursor from a region?
There is no such feature, but you can just exclude it virtually.
The Microsoft Company Party where everybody played name tag swap
Even the boss got into the festivities.
Rotation revisited: Shuffling more than three blocks, and other small notes
Generalizing the shuffle to arbitrary numbers of blocks.
The back cover of C++: The Programming Language also raises questions not answered by the front cover
Not doing the reading.
Rotation revisited: Avoiding having to calculate the gcd when doing cycle decomposition
Math is hard. Let's go counting!
Rotation revisited: Cycle decomposition in clang’s libcxx
Rotating in the minimum number of steps by performing cycle decomposition.
Rotation revisited: A shocking discovery about gcc’s unidirectional rotation algorithm
We've seen this before.
Rotation revisited: Another unidirectional algorithm
Moving in a straight line, in a different way.
The placeholder name for the Windows 8 experience was “modern”
Modern this and that.
Sharing the result of a single Windows Runtime IAsyncOperation among multiple coroutines, part 3
A variation where we try only once.
Sharing the result of a single Windows Runtime IAsyncOperation among multiple coroutines, part 2
Just let each person take turns trying.
Sharing the result of a single Windows Runtime IAsyncOperation among multiple coroutines, part 1
Caching the result and knowing when the cache is valid.
If C# and JavaScript lets me await a Windows Runtime asynchronous operation more than once, why not C++/WinRT?
A difference in philosophy.
A hypothetical redesign of System.Diagnostics.Process to avoid confusion over properties that are valid only when you are the one who called Start
Putting them in a place that can access only if you call <CODE>Start</CODE>.
Why do you say that a COM STA thread must pump messages if I see sample code creating STA threads and not pumping messages?
You need to pump messages when idle, but maybe you are never idle.
How do I use Win32 structures from the Windows Runtime?
Trick question: You can't. But maybe you can fake it.
The classic TreeView control lets me sort by name or by lParam, but why not both?
You need to arrange to get one from the other.
What is the history of the ERROR_ARENA_TRASHED error code?
The storage control blocks were destroyed.