The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Apr 17, 2026
Post comments count
0
Post likes count
0
Forgotten message from the past: LB_INITSTORAGE
Preallocating memory to avoid quadratic behavior.
Apr 16, 2026
Post comments count
8
Post likes count
1
What’s up with window message 0x0091? We’re getting it with unexpected parameters
Trespassing on system messages.
Apr 15, 2026
Post comments count
0
Post likes count
2
Why is there a long delay between a thread exiting and the WaitForSingleObject returning?
Maybe it didn't really exit.
Apr 14, 2026
Post comments count
2
Post likes count
2
Why was there a red telephone at every receptionist desk?
Not a direct line to Bill Gates's office.
Apr 13, 2026
Post comments count
6
Post likes count
1
Finding a duplicated item in an array of N integers in the range 1 to N − 1
Taking advantage of special characteristics of the array.
Apr 10, 2026
Post comments count
3
Post likes count
2
How do you add or remove a handle from an active WaitForMultipleObjects?, part 2
Waiting for the waiting thread to acknowledge the change.
Apr 9, 2026
Post comments count
4
Post likes count
2
How do you add or remove a handle from an active WaitForMultipleObjects?
You can't, but you can cooperate with the other thread.
Apr 8, 2026
Post comments count
4
Post likes count
2
How do you add or remove a handle from an active MsgWaitForMultipleObjects?
You can't, but you can arrange for the waiter to do it for you.
Apr 7, 2026
Post comments count
9
Post likes count
6
Were there any Windows 3.1 programs that were so incompatible with Windows 95 that there was no point trying to patch them?
The permanently ineligible list.