The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Why didn’t Windows 95 setup install a miniature Windows 95 so that it could be written as a 32-bit program?
Sep 26, 2025
Post comments count 0
Post likes count 2

Why didn’t Windows 95 setup install a miniature Windows 95 so that it could be written as a 32-bit program?

Raymond Chen
Raymond Chen

Getting to the GUI quickly, and rebooting only once.

Samples note: Use comments to describe what code does, not what you wish the code would do
Sep 25, 2025
Post comments count 6
Post likes count 3

Samples note: Use comments to describe what code does, not what you wish the code would do

Raymond Chen
Raymond Chen

Comments explain the code. They are not substitutes for the code.

Why is Windows still tinkering with critical sections?
Sep 24, 2025
Post comments count 4
Post likes count 3

Why is Windows still tinkering with critical sections?

Raymond Chen
Raymond Chen

The critical section may be an old dog, but it's still learning new tricks.

Another lesson learned from the Windows 98 on-stage USB blue screen
Sep 23, 2025
Post comments count 1
Post likes count 1

Another lesson learned from the Windows 98 on-stage USB blue screen

Raymond Chen
Raymond Chen

Test before using.

Why was Windows 3.0’s WinHelp called an online help system when it ran offline?
Sep 22, 2025
Post comments count 11
Post likes count 2

Why was Windows 3.0’s WinHelp called an online help system when it ran offline?

Raymond Chen
Raymond Chen

It was online in a different sense.

Learning to read C++ compiler errors: Not a legal base class
Sep 19, 2025
Post comments count 1
Post likes count 1

Learning to read C++ compiler errors: Not a legal base class

Raymond Chen
Raymond Chen

What would make it an illegal base class?

Can I close a duplicate handle while I’m waiting on the original?
Sep 18, 2025
Post comments count 6
Post likes count 2

Can I close a duplicate handle while I’m waiting on the original?

Raymond Chen
Raymond Chen

That's fine, since you're not closing the handle that you're waiting on.

How can I get my shell thumbnail extractors to run in the same process?
Sep 17, 2025
Post comments count 1
Post likes count 2

How can I get my shell thumbnail extractors to run in the same process?

Raymond Chen
Raymond Chen

Adding another level of indirection.

Translating the <CODE>STATUS_<WBR>STACK_<WBR>BUFFER_<WBR>OVERRUN</CODE> status code into customer-ready text
Sep 16, 2025
Post comments count 7
Post likes count 3

Translating the STATUS_STACK_BUFFER_OVERRUN status code into customer-ready text

Raymond Chen
Raymond Chen

Reducing the level of alarm.