The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Apr 4, 2011
Post comments count 0
Post likes count 1

Windows is not a .NET Framework delivery channel either

Raymond Chen

We learned a while ago that Windows is not an MFC delivery channel. And, since you asked, it's not a .NET Framework delivery channel either. If you're developing a program that uses the .NET Framework, you have to have a backup plan if the version of the .NET Framework you need is not installed on the computer. This might mean including a copy of the installer on your CD. It might mean redirecting the user to an appropriate download site. It might just mean telling the user, "This program requires version XYZ of the .NET Framework." Whatever you do, you need to do something. Windows XP didn't come with a...

Apr 1, 2011
Post comments count 0
Post likes count 0

The funniest joke I've ever told (to a three-year-old)

Raymond Chen

I've tested this joke on several children ages three and four, and it never fails. There were two kittens walking down the street, and one of them fell on its butt! I developed this joke for one of my honorary nieces. She had just started to learn about joke-telling and asked me to tell her a joke. One of the keys to joke-telling is to know your audience: A three-year-old won't have the attention span for a longer joke, and subtlety and observational humor won't work either. It's got to be short and direct. She thought kittens were cute, and falling on one's butt was funny, so I figured, hey, let me combine t...

Apr 1, 2011
Post comments count 0
Post likes count 1

The introduction of whimsical teasing in Comic Chat

Raymond Chen

A few months after my post on the sad demise of whimsical teasing in Comic Chat, I received a piece of email from none other than the author of Comic Chat, DJ Kurlander: I was the person that started the Comic Chat project in Microsoft Research and was responsible for that line, "This person is too lazy to create a profile entry." Not a whole lot of thought went into the default profile. In maybe the 30 seconds that I put into it, I thought that the line was moderately humorous, fit with the quirky nature of Comic Chat, and might motivate more people to create profiles. When we released version 2, MSN got th...

Mar 31, 2011
Post comments count 0
Post likes count 1

2011 Q1 link clearance: Microsoft blogger edition

Raymond Chen

It's that time again: Linking to other Microsoft bloggers.

Mar 31, 2011
Post comments count 0
Post likes count 2

Having an owner window from another process is tricky, but it's sometimes the right thing to do

Raymond Chen

A customer had a main program (let's call it A) and a helper program (let's call it B), and the customer wanted and wanted B to act like a modal dialog relative to A. When B is launched, we disable A's window and then call to simulate a modal dialog. How do we make sure that focus goes to B's window and not A's? We've found that if the user clicks on the (now-disabled) window from the process A, then window B loses focus. This is not the behavior from regular modal windows however: For normal modal windows, clicking on the disabled owner activates the modal popup. One idea is to watch for...

Mar 30, 2011
Post comments count 0
Post likes count 1

How do I get the title of a dialog from a dialog resource?

Raymond Chen

A customer submitted the following question: We are developing automated tests for our application. Among other things, our application uses property sheets, which means that the name of the tab is stored as the title of the dialog template resource. Since we want our automated tests to run on all language versions of our application, we don't want to hard-code the tab names in our automated test. I have not been able to find any information on how to programmatically extract the dialog titles from the dialog resources. Any pointers would be appreciated. I replied with some pointers: The customer was gratef...

Mar 29, 2011
Post comments count 0
Post likes count 1

Although the default icon for a shortcut is the icon of the target, you can override that

Raymond Chen

A customer reported that a shortcut they deployed to their employees' desktops was triggering unwanted server traffic. My customer deploys a shortcut on %ALLUSERSPROFILE%\Desktop, and this shortcut points to an EXE file on a remote server. Once a local user logs on, the computer will try logging onto the remote computer to query information and generate a login failure alert on the server. Is there any way to stop Explorer from querying the shortcut information? Fortunately, the customer provided context for the question, because the question the customer is asking doesn't actually match the scenario. The ...

Mar 28, 2011
Post comments count 0
Post likes count 1

Why did Win32 define BOOL as a signed int instead of an unsigned int?

Raymond Chen

Igor Levicki wants somebody from Microsoft to explain why was defined as a instead of an . You don't need to work for Microsoft to figure this out. All the information you need is publically available. Quoting from K&R Classic, which was the operative C standards document at the time Windows was being developed: 7.6 Relational Operators The [relational operators] all yield 0 if the specified relation is false and 1 if it is true. The type of the result is . Win32 defined as synonymous with because Brian and Dennis said so. If you want to know why Brian and Dennis decided to have the result of rel...

Mar 25, 2011
Post comments count 0
Post likes count 0

Paul Cézanne and Camille Saint-Saëns may have similar-sounding last names, but they are not the same person

Raymond Chen

Next week, the Seattle Symphony Orchestra performs the Saint-Saëns Organ Symphony, but the people responsible for the symphony's radio advertisements don't realize that. As the strains of the symphony resound in the background, the announcer proudly announces that tickets are still available for "Cézanne's Organ Symphony." The names Cézanne and Saint-Saëns may sound similar, but I can assure you that they are not the same person. Here's a handy chart: This is not the first time the Seattle Symphony's radio announcer has made this substitution. I don't know whether somebody is giving h...