The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Before you check if an update caused your problem, check that it wasn’t a problem before the update
Mar 31, 2026
Post comments count 0
Post likes count 0

Before you check if an update caused your problem, check that it wasn’t a problem before the update

Raymond Chen
Raymond Chen

It was going to be like that when I got here.

A question about the maximimum number of values in a registry key raises questions about the question
Mar 30, 2026
Post comments count 3
Post likes count 1

A question about the maximimum number of values in a registry key raises questions about the question

Raymond Chen
Raymond Chen

Why is this even a question?

What if a dialog wants to intercept its own message loop?
Mar 27, 2026
Post comments count 0
Post likes count 4

What if a dialog wants to intercept its own message loop?

Raymond Chen
Raymond Chen

You can steal them from your owner.

Why doesn’t <CODE>WM_<WBR>ENTER­IDLE</CODE> work if the dialog box is a <CODE>Message­Box</CODE>?
Mar 26, 2026
Post comments count 1
Post likes count 3

Why doesn’t WM_ENTER­IDLE work if the dialog box is a Message­Box?

Raymond Chen
Raymond Chen

Because it opted out.

How can I change a dialog box’s message loop to do a <CODE>Msg­Wait­For­Multiple­Objects</CODE> instead of <CODE>Get­Message</CODE>?
Mar 25, 2026
Post comments count 2
Post likes count 4

How can I change a dialog box’s message loop to do a Msg­Wait­For­Multiple­Objects instead of Get­Message?

Raymond Chen
Raymond Chen

The dialog box lets you change how it waits.

Windows 95 defenses against installers that overwrite a file with an older version
Mar 24, 2026
Post comments count 6
Post likes count 6

Windows 95 defenses against installers that overwrite a file with an older version

Raymond Chen
Raymond Chen

A very primitive version of recovery.

How can I make sure the anti-malware software doesn’t terminate my custom service?
Mar 23, 2026
Post comments count 12
Post likes count 3

How can I make sure the anti-malware software doesn’t terminate my custom service?

Raymond Chen
Raymond Chen

You'll have to ask nicely.

Windows stack limit checking retrospective: arm64, also known as AArch64
Mar 20, 2026
Post comments count 6
Post likes count 2

Windows stack limit checking retrospective: arm64, also known as AArch64

Raymond Chen
Raymond Chen

Wrapping things up.

Windows stack limit checking retrospective: amd64, also known as x86-64
Mar 19, 2026
Post comments count 8
Post likes count 3

Windows stack limit checking retrospective: amd64, also known as x86-64

Raymond Chen
Raymond Chen

Reaching the modern day.