The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Dec 20, 2024
Post comments count 0
Post likes count 2

How do I register a file type for a scripting language so that users get a warning when they run an untrusted script?

Raymond Chen

Use the FTA_AlwaysUnsafe edit flag.

Dec 19, 2024
Post comments count 7
Post likes count 5

Inside STL: The atomic shared_ptr

Raymond Chen

There's a lock hiding inside the pointer.

Dec 18, 2024
Post comments count 2
Post likes count 1

Is there a way to split the git history of a file or combine the histories of two files without a merge commit?

Raymond Chen

Studying how git recovers history.

Dec 17, 2024
Post comments count 6
Post likes count 3

Microspeak terms that didn’t take hold: airspace, synthetics, and AOI

Raymond Chen

Sometimes they don't stick.

Dec 16, 2024
Post comments count 0
Post likes count 2

Why do we have header files <pshpackN.h> and <poppack.h> instead of just issuing the pragma directly?

Raymond Chen

Because the pragma may not work everywhere.

Dec 13, 2024
Post comments count 0
Post likes count 3

Converting to a derived class from the future: How to cast from a base class to an incomplete derived class?

Raymond Chen

Deferring the definition until the class is complete.

Dec 12, 2024
Post comments count 0
Post likes count 3

API naming principles for conditional operations: On, When, and If

Raymond Chen

Describing when a condition is tested.

Dec 11, 2024
Post comments count 8
Post likes count 3

What is the CONTINUE_IF_FAILED equivalent of RETURN_IF_FAILED?

Raymond Chen

Be careful how you write it, or better: Don't write it at all.

Dec 10, 2024
Post comments count 3
Post likes count 1

It rather involved being on the other side of this airtight hatchway: Disabling anti-malware scanning

Raymond Chen

If you have already infiltrated the process, then you can disable things from the inside.