The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts

Why am I being told about a signed/unsigned comparison, and why only sometimes, and how can I fix it?

How the compiler back-end can influence warnings.

The case of the invalid handle despite being managed by an RAII type, part 2

Avoiding using an object after is has destructed, and maybe using a less-well-known corner of the C++ language.

The case of the invalid handle despite being managed by an RAII type

The handle remains valid for the object's lifetime, but what is the object's lifetime?

How expensive is it to create a Windows performance counter?

The cost depends on the performance counter.

SIDs are really just another a fancy way of creating unique IDs in a decentralized way

Keeping them from colliding with each other.

The move constructor that you have to declare, even though you don’t want anyone to actually call it

Forcing named return value optimization.

Reordering C++ template type parameters for usability purposes, and type deduction from the future

You want them to go first, but you also want to deduce them.

How can I register a program to auto-relaunch if it crashes or is terminated?, redux

You can get a little bit of the way there.

Pulling sleight of hand tricks in a security vulnerability report, episode 2

I see what you did there.