The Old New Thing

Where does shell.windows.com get information about file extensions, and how do I get in on that action?

If you double-click a file for which there is no registered handler, Windows will offer to visit the Web service on shell.windows.com to locate a program that can open it. But where does this information come from, and how can you add your program to the database? Knowledge Base article Q929149, titled Windows File Association System On-...

How does PostQuitMessage know which thread to post the quit message to?

Commenter bav016 asks how functions like PostQuitMessage and SetTimer(NULL) know which thread the messages should go to. Unlike some functions such as InvalidateRect which have a window handle parameter that lets you say which window you want to operate on, PostQuitMessage and SetTimer(NULL) don't say which thread the WM_QUIT or WM_TIMER ...
Comments are closed.0 0
Code

It’s surprising how suddenly those new skins started pouring in

A friend of mine told me a story of a project from over ten years ago. Part of the product design was that it would include a bunch of skins (visual styles). The development team had written up the skinning infrastructure, but the company which was hired to create the actual skins hadn't delivered anything. My friend's assignment was to test ...

The programmers don’t design skins; they just make skins possible

Not all skill sets are interchangeable. That's why we have concepts like division of labor and specialization. But it appears that not everybody understands this. I was reminded of this topic when I read the reactions to the Microsoft Exchange Team announcing that they had added Xbox and Zune themes to OWA. Many people were shocked, such ...

Raymond misreads flyers: A Taste of WWL

There were flyers in our building inviting people to attend a food event called A Taste of WWL. The letters WWL stand for Windows and Windows Live, but the font they chose for the sign was confusing to me. The capital L looked like a capital I, and I misread the poster as an invitation to attend A Taste of WWI. And then I thought, "Who ...

When debugging a stack overflow, you want to focus on the repeating recursive part

When your program breaks into the debugger with a stack overflow, you will get a ridiculously huge stack trace because your program has gone into some sort of recursive death. (This is not a statement of metaphysical certitude, but it is true with very high probability.) But the place where the program crashed is usually not interesting at ...
Comments are closed.0 0
Code

Microspeak: Learnings

If things you teach are teachings, then things you learn must be learnings, right? Good Microspeak citations for this word are hard to find since the word is rarely used in a sentence; it's just a heading in a slide presentation. I found dozens of presentations that had a slide titled Learnings from XYZ, or, for those who want to sound really ...

Not my finest hour: Misreading a product label

I had finished some store-bought soup and thought to myself, "That was a pretty good soup. What brand was it? I'll buy it again." I went to my recycle bin to fish out the aseptic box that the soup came in, and looked for the brand name. And I found it: dnos. I thought to myself, "That's a strange name for a soup company...

Even if you have code to handle a message, you’re allowed to call DefWindowProc, because you were doing that anyway after all

Just because you write case WM_SOMETHING: doesn't mean that you have to handle all possible parameters for the WM_SOMETHING message. You're still allowed to call the DefWindowProc function. After all, that's what you did when you didn't have a case WM_SOMETHING: statement in the first place. switch (uMsg) { case WM_CHAR: OnChar...
Comments are closed.0 0
Code