The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Sep 29, 2026
Post comments count 3
Post likes count 1

As a general rule, calling product support while drunk is not recommended

Raymond Chen

Swearing is also poor form.

Sep 28, 2026
Post comments count 5
Post likes count 1

C++ reminder: Function-local static variables are initialized only once, even if it looks like they get initialized multiple times

Raymond Chen

Only on first execution.

Sep 25, 2026
Post comments count 18
Post likes count 4

Debugging walkthrough: Access violation on nonsense instruction, episode 3

Raymond Chen

Trying to figure out what the interloper was trying to.

Sep 24, 2026
Post comments count 4
Post likes count 5

No, really, you need to pass all unhandled messages to DefWindowProc, part 2

Raymond Chen

Another example to add to the list.

Sep 23, 2026
Post comments count 6
Post likes count 3

When working with Win32 FILETIME, don’t forget that you have std::chrono now

Raymond Chen

Let the library do the math for you.

Sep 22, 2026
Post comments count 23
Post likes count 3

A brief history of Windows scroll bar shortcuts

Raymond Chen

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?

Raymond Chen

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

Raymond Chen

Do you try again or give up?

Sep 17, 2026
Post comments count 2
Post likes count 3

std::call_once vs. std::async

Raymond Chen

Simple vs complex machinery.