The secret life of GetWindowText

GetWindowText() is more complicated than you think. The documentation tries to explain its complexity with small words, which is great if you don’t understand long words, but it also means that you’re not getting the full story. Here’s an attempt to give the full story. How windows manage their text There are two ways window…


What is in the “Windows 95 Special Edition” box?

At the Windows 95 Launch and at various other marketing events, guests were given a copy of “Windows 95 Special Edition”. What is so special about the box? Answer: The box. The contents of the box are exactly the same as a regular copy of Windows 95. The only thing special about it is the…


Lessons from the trenches

Lessons I learned from working in product support the past few days: If the husband is in the room, hope that he leaves. (He will second-guess everything you do.) If there’s a 14-year-old in the room, hope the parents give the phone to him/her. (Teenagers type a lot faster.) Hope you get a grandma.  They’re…


Why does Windows 95 have functions called BEAR, BUNNY and PIGLET?

If you dig back into your Windows 95 files, you’ll find that some internal system functions are given names like BEAR35, BUNNY73 and PIGLET12. Surely there is a story behind these silly names, isn’t there? Of course there is. “Bear” is the name of the Windows 3.1 mascot, a stuffed teddy bear seemingly-obsessively carried around…


A day in the trenches

I got up at 5 this morning to spend the day at Product Support Services answering phones: today was the day the Blaster worm launched its second wave. And by a startling coincidence, the person at the station next to me was Michael Howard our Senior Security Program Manager and author of Writing Secure Code….


Answer to exercise

The WM_SIZING handler intercepts only interactive resizing. If the user right-clicks the taskbar and selects “Cascade Windows”, this resizes the window directly without going through the interactive WM_SIZING step

Windows 95 doesn’t boot with more than 1GB of RAM

Short version Windows 95 will fail to boot if you have more than around 480MB of memory. (This was considered an insane amount of memory back then. Remember, Windows 95’s target machine was a 4MB 386SX and a powerful machine had 16MB. So according to Moore’s law, that gave us seven years before we had…


Scrollbars part 8 – Integral interactive resizing

Enforcing integrality solves the fractional-line problem, but notice that when you grab the top or bottom edge and resize the window, the resize feedback doesn’t match the actual window you get back if you drag the window to a non-integral size. (You may need to turn off full window drag to see this effect more…

Why can’t I remove “for test/evaluation purposes only”?

“Why can’t I remove ‘for test/evaluation purposes only’? I know I’m running an evaluation edition, I don’t need it rubbed in my face.” This prevents unscrupulous OEMs from selling machines with the evaluation edition of the product instead of the retail version. (Yes, this has happened before. Many times.) The “For test purposes only” tag…