The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Intercepting messages inside IsDialogMessage, fine-tuning the message filter
Making sure it triggers when you need it, and not when you don't.
Intercepting messages inside IsDialogMessage, installing the message filter
Using an <CODE>IsDialogMessage</CODE> extension point.
Intercepting messages before IsDialogMessage can process them
Process the message before you let <CODE>IsDialogMessage</CODE> see it.
Customizing the ways the dialog manager dismisses itself: Isolating the Close pathway
Intercepting the flow in your message loop.
Customizing the ways the dialog manager dismisses itself: Detecting the ESC key, second (failed) attempt
Sniffing the synchronous keyboard state is still not precise enough.
The 2026/2027 Seattle Symphony subscription season at a glance
The pocket reference guide for 2026/2027.
Customizing the ways the dialog manager dismisses itself: Detecting the ESC key, first (failed) attempt
Sniffing the asynchronous keyboard state.
Exploring the signals the dialog manager uses for dismissing a dialog
Summarizing the flow.
Could WriteProcessMemory be made faster by avoiding the intermediate buffer?
I guess it could, but why bother?

