The Old New Thing

How can I tell whether a COM pointer to a remote object is still valid?

A customer asked the rather suspicious question, "How do I check whether a pointer is valid in another process?" This question should make your head boggle with bewilderment. First of all, we've moved beyond to . Second of all, what the heck are you doing with a pointer in another process? You can't do anything with it! After some back-and...

Fontography term or pretentious blather?

Fontography is like wine. The connoisseurs speak in a language that only superficially resembles English. Here's a list of words. Which of them are terms used in fontography, and which are just pretentious blather? If you aren't familiar with font speak, here's a sample I stole from an old article on the evolution of the Internet explorer...

The challenges in changing the way Explorer hosts shell extensions

Various types of shell extensions such as thumbnail extractors are run in a separate process, and if one of those shell extensions crashes, it takes out the COM Surrogate rather than the main Explorer process. Anonymous wondered if this model could be extended to all types of shell extensions, perhaps not all at once, but gradually. The ...

Stupid Raymond talent: Screaming carrier

Similar to Mike, I was able to scream (not whistle: scream) a 300 baud carrier tone. This skill proved useful when I was in college and the mainframe system was down. Instead of sitting around waiting for the system to come back, I just went about my regular business around campus. Every so often, I would go to a nearby campus phone (like a ...

How can I tell whether a DLL has been registered?

A customer pointed out that you can use to register a DLL or to unregister it, but how do you query whether a DLL has been registered? DLL registration (via ) is not declarative; it is procedural. A DLL does not provide a manifest of things it would like to happen when installed. Instead, the DLL merely provides two functions for to call, ...

Okay, everybody, it's time for rumors and gossip

A friend of mine told me one technique his boss used for keeping group meetings on time. The last item on every meeting agenda was called Rumors and gossip. A group meeting is sort of like a mandatory watercooler session. Everybody is now in a room sitting around a table, and you naturally start discussing whatever rumors you've heard about ...

Microspeak: Level-set

In mathematics, a level set is the set of points at which a function takes a particular value. This has nothing to do with the way the term is used at Microsoft. In fact, the way the term is used at Microsoft, I have no idea what it means. But here are citations. The first is from an upper-level executive: Before we start the meeting, let me...

How do I generate a unique 32-bit value for a time zone?

Public Service Announcement: Daylight Saving Time ends in most parts of the United States this weekend. Other parts of the world may change on a different day from the United States. A customer asked the following question: Given two structures, I would like to compute a for each that I can then compare to determine whether they ...