The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Dec 1, 2008
Post comments count 0
Post likes count 1

Don’t be helpless: You can find information too, if you try (episode 2)

Raymond Chen

Commenter Joshua Blake wonders why Word's status bar says "Word is preparing to background print the document", wondering whether there used to be other types of printing like foreground. Well, first of all, this is a question about Office, something I explicitly deny any special knowledge of: Topics I am not inclined to cover: [...] But I'm going to take this opportunity to teach you how to use information already available to you to answer this question yourself. First, let's see what the Internet says about Word and background printing. A search for ‹Word background printing› turns ...

Nov 28, 2008
Post comments count 0
Post likes count 0

The Ballard Locks will be empty this week

Raymond Chen

The Hiram M. Chittenden Locks (more commonly known as the Ballard Locks) are a common attraction in Seattle. But if you pay a visit for the next week, you'll find that the large set of locks will be empty. And not just empty of boats. Empty of water. The chamber has been emptied of water for annual maintenance, and if you stop by, you can take pictures of a big hole in the ground. According to The Seattle Times, items found upon draining the chamber include cell phones, a two-way radio, a boot, beer cans, and prescription glasses. Nothing too exciting, I have to admit. Now, if they had found a bicycle...

Nov 28, 2008
Post comments count 0
Post likes count 1

Just because a method is called Refresh doesn’t mean that it refreshes what you want

Raymond Chen

Here's a question from a customer: I made some changes related to my shell extension [details omitted], but the changes don't show up in the Explorer window when I refresh it. Any suggestions on how to solve this problem? When we asked how they were refreshing the Explorer window, we were expecting something like pressing F5 or calling with , or maybe calling or possibly even calling from script. But we definitely didn't expect this response: I'm invoking the Process.Refresh() method from the namespace. Just because a method is called doesn't mean that it refreshes what you want. I think this is...

Nov 27, 2008
Post comments count 0
Post likes count 0

Welcome to the 2008 holiday shopping season

Raymond Chen

Yes, maybe you're one of those crazy people who camps out in front of a store so you can be the first person in line to get this year's hot toy, or so you can snag one of the doorbuster deals. But be judicious in your rush, because the police are out there too, and they're shopping for something else.

Nov 27, 2008
Post comments count 0
Post likes count 1

Not my finest hour: Getting instructions on doing something I’ve already done

Raymond Chen

Last year, I sent some email to the people who run our team's check-in validation tool asking how I could add a new rule to the validation tests. One of the members wrote back, "You do it just like this guy," and sent me a reference to another check-in that added a validation rule. That other check-in was made by me. But wait, it gets better. That other check-in? It added the very rule I was thinking about adding.

Nov 26, 2008
Post comments count 0
Post likes count 2

The cost-benefit analysis of bitfields for a collection of booleans

Raymond Chen

How many of them are there?

Nov 25, 2008
Post comments count 0
Post likes count 1

Yes, I filed an expense report for a hair dryer, why do you ask?

Raymond Chen

Back in the late 1990's one of my colleagues (who is now in Office Labs—check it out, they've got some pretty cool stuff) filed an expense report for a hair dryer, and it was accepted. But what valid business purpose would there be for a tester to buy a hair dryer? At the time, my colleague worked as a tester for Windows power management. One of the things that needed to be tested was whether the motherboard accurately reported thermal stress (translation: overheating) to the operating system and whether the operating system responded appropriately to these reports. And when the project started, the mos...

Nov 24, 2008
Post comments count 0
Post likes count 0

When you’re walking around a city, you usually forget to look up

Raymond Chen

When you're walking around a city, you usually forget to look up. It takes a landmark building to prompt you to admire anything above the ground floor. For those in the Seattle area, the Seattle Times included a brief walking tour of Seattle architecture. The article doesn't mention one of my favorites: The roll-on deodorant building on the corner of Seneca and Second. The effect is most striking if you if you stand on Second and Union and look southeast at night. (Sadly, under the dome is just a roomful of machines.)

Nov 24, 2008
Post comments count 0
Post likes count 1

Consequences of the Explorer view model: If you create a view, then you succeeded, even if you’d rather fail

Raymond Chen

Commenter Anonymous asked why navigating to a drive with no media displays a dialog instead of showing the error message in the view. This is an unfortunate consequence of Explorer's browser/view model. The shell browser binds to the and asks for the view by calling . The view window calls to figure out what to show in the view—and here is where the error dialog appears asking you to insert a disc into the drive. The problem is that has to return an enumerator or an error code. There is no return value that says "Um, yeah, could you display this text instead?" In a narrow sense, there's no way to r...