The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Sep 24, 2026
Post comments count
4
Post likes count
5
No, really, you need to pass all unhandled messages to DefWindowProc, part 2
Another example to add to the list.
Sep 23, 2026
Post comments count
8
Post likes count
3
When working with Win32 FILETIME, don’t forget that you have std::chrono now
Let the library do the math for you.
Sep 22, 2026
Post comments count
19
Post likes count
3
A brief history of Windows scroll bar shortcuts
Right-clicking and shift-clicking.
Sep 21, 2026
Post comments count
9
Post likes count
4
What’s the highest legal FILETIME? Is it safe to use?
Being wary of how people use it and how it interacts with other types.
Sep 18, 2026
Post comments count
7
Post likes count
2
Comparing exception behavior of magic statics, std::call_once , and std::async
Do you try again or give up?
Sep 17, 2026
Post comments count
2
Post likes count
3
std::call_once vs. std::async
Simple vs complex machinery.
Sep 16, 2026
Post comments count
1
Post likes count
4
Magic statics vs. std::call_once
They sort of do the same thing, but differently.
Sep 15, 2026
Post comments count
10
Post likes count
3
Why do Microsoft job levels start in the high 50’s instead of starting at a sane number like 1?
It used to start at 1, but that was the old system.
Sep 14, 2026
Post comments count
8
Post likes count
3
Why didn’t ReadDirectoryChangesW provide a way to correlate the two sides of a rename operation?
Perhaps it wasn't necessary, or perhaps it didn't occur to them that this a problem.