When working with 24-bit-per-pixel formats on video cards with bank-switched memory, code had to use aligned memory accesses despite the pixels themselves not being aligned. This requirement was necessary due to the hardware constraints of bank-switched video memory architectures.
devblogs-microsoft-com-oldnewthing
11 items from devblogs-microsoft-com-oldnewthing
The article explains that when a C++ compiler reports an error about code you didn't write, you should investigate who actually wrote that code. This helps in understanding misleading error messages like "illegal use of ->" when no arrow operator appears in your source.
The article discusses whether there were Windows 3.1 programs so incompatible with Windows 95 that patching them was pointless. It references a "permanently ineligible list" of applications that couldn't be made compatible with the new operating system.
You cannot directly add or remove a handle from an active MsgWaitForMultipleObjects call. However, you can arrange for the waiter to handle this operation for you.
You cannot directly add or remove a handle from an active WaitForMultipleObjects call. Instead, you need to coordinate with the other thread to achieve this functionality.
The article discusses the technical process of waiting for a thread to acknowledge changes when adding or removing handles from an active WaitForMultipleObjects operation. This is part two of a series on managing handles in Windows synchronization mechanisms.
The article discusses an algorithm for finding a duplicated item in an array of N integers where each integer is in the range 1 to N-1. It explains how to leverage the special characteristics of this constrained array to efficiently identify the duplicate element.
The article explains that the red telephone found at receptionist desks was not a direct line to Bill Gates's office, contrary to what some might have speculated.
The article explains that a long delay between a thread exiting and WaitForSingleObject returning may occur because the thread hasn't actually fully exited yet. The system may still be performing cleanup operations after the thread's execution has completed.
The article discusses window message 0x0091 being received with unexpected parameters, describing it as trespassing on system messages. It appears on The Old New Thing blog from Microsoft.
The LB_INITSTORAGE message allows preallocating memory for list boxes to avoid quadratic performance behavior when adding many items.