Which message numbers belong to whom?

Valid window messages break down into four categories. 0 .. 0x3FF (WM_USER-1): System-defined messages. The meanings of these messages are defined by the operating system and cannot be changed. Do not invent new messages here. Since the meanings are defined by Windows, the operating system understands how to parse the WPARAM and LPARAM parameters and…


What did the letters “NT” originally stand for?

Finally, the real story of what the letters “N” and “T” originally stood for is now public, so I can stop being coy about it. (Via LockerGnome.)


What are these strange values returned from GWLP_WNDPROC?

GetWindowLongPtr(hwnd, GWLP_WNDPROC) [or GetWindowLong(hwnd, GWL_WNDPROC) if you haven’t yet made your code 64-bit compatible] is supposed to return the current window procedure. Why do I sometimes get wacko values? Because sometimes “you can’t handle the truth”. If the current window procedure is incompatible with the caller of GetWindowLongPtr, then the real function pointer cannot be…


Hello Sweden, you’re on fire

(Geek talk resumes on Monday.) The longstanding tradition of Norwegians telling Swedish jokes and vice versa, was recently refueled by a border story. A Norwegian man called Sweden on his mobile phone to tell them they had a forest fire. Not only did the firefighters not know about the blaze, they didn’t recognize the name…


It’s like the Swedes don’t want you to learn their language

(It’s a holiday in the States today and tomorrow, so I’m not going to talk about geek stuff. That’ll resume on Monday.) If you pay a visit to Deutsche Welle, the German international broadcasting service, you will find a wide array of online German learning materials, such as the daily news in slowly- and clearly-enunciated…


Other tricks with WM_GETDLGCODE

The WM_GETDLCODE message lets you influence the behavior of the dialog manager. A previous entry on using WM_GETDLGCODE described the DLGC_HASSETSEL flag which controls whether edit control content is auto-selected when focus changes. I was going to write a bit about the other flags, but it turns out that Knowledge Base Article 83302 already covers…


What do the letters W and L stand for in WPARAM and LPARAM?

Once upon a time, Windows was 16-bit. Each message could carry with it two pieces of data, called WPARAM and LPARAM. The first one was a 16-bit value (“word”), so it was called W. The second one was a 32-bit value (“long”), so it was called L. You used the W parameter to pass things…


A shortcut to the Run dialog

Here’s a little script that opens the Run dialog. You can save it as “Run.js” and double-click it. (new ActiveXObject(“Shell.Application”)).FileRun(); The advantage of this approach over various others people have come up with is that this one is actually documented. (And therefore is less likely to break in the next version of the operating system.)


Why isn’t Fast User Switching enabled on domains?

Windows XP added a new feature called Fast User Switching which lets you switch between users without having to log off. But this feature is disabled if your computer is joined to a domain. Why? There were several reasons, none of them individually insurmountable, but they added up to quite a lot of work for…