The Old New Thing

The reverse-engineering of PDC 2005 pass colors

Last night, the MVP Global Summit broke up by product groups for dinner. I was at the Windows Client product group dinner. The problem for me was figuring out who were the MVPs and who were just Microsoft employees looking for MVPs to chat with. Unfortunately, the people who made up the badges didn't think of making it easy to tell who is who...
Comments are closed.0Other

English Cut: Bringing bespoke tailoring into the general consciousness

Thomas Mahon's English Cut is a glimpse into the world of bespoke tailoring, a world I was completely unaware of prior to his web site. I was particularly fascinated by his description of how to recognise the work of Anderson & Sheppard by inspecting the pockets. It is this attention to detail that really makes the difference between ...

But I have Visual Basic Professional

Back in 1995, I was participating in a chat room on MSN on the subject of device driver development. One of the people in the chat room asked, "Can I write a device driver in Visual Basic?" I replied, "Windows 95 device drivers are typically written in low-level languages such as C or even assembly language." Undaunted, the person ...

The DHS television show was all a scam, it appears

Xeni Jardin on Boing Boing reports that the DHS series I mentioned a while back was all an elaborate scam to bilk investors out of millions. (One tip-off has got to be that they changed their domain name from www.dhs.tv to www.dhstheseries.tv. And curiously, their "News" page just says P ALIGN"LEFT"/P.) Read Ms. Jardin's article for ...

On objects with a reference count of zero

One commenter claimed that When the object is first constructed, the reference count should be 0 and AddRef should be called at some point (probably via QueryInterface) to increment the reference count. If you construct your object with a reference count of zero, you are playing with matches. For starters, when the object is created, ...
Comments are closed.0Code

Avoiding double-destruction when an object is released

As we saw last time, trying to do too much in one's destructor can lead to an object being destroyed twice. The standard way to work around this problem is to set an artificial reference count during destruction. class MyObject : public IUnknown { ... ULONG Release() { LONG cRef = InterlockedDecrement(&m_cRef); if (cRef == 0...
Comments are closed.0Code

COM object destructors are very sensitive functions

If you try to do too much, you can find yourself in trouble. For example, if your destructor hands a reference to itself to other functions, those functions might decide to call your IUnknown::AddRef and IUnknown::Release methods as part of their internal operations. Consider: ULONG MyObject::Release() { LONG cRef = InterlockedDecrement...
Comments are closed.0Code

Raymond’s 2005 MVP Global Summit event diary

In case those coming into town for the 2005 MVP Global Summit were interesting in chatting with me, here's my event diary for this week. (Non-native-English-speaking MVPs can hover over the highlighted words for a translation from slang into "standard American-English".) If you want to be sure to catch me, drop me a line and I'll try to...
Comments are closed.0Other

Kurt would have wanted it that way

Several years ago, I had the pleasure of working in the office next to Danny, a phenomenally talented fellow, not just a stellar programmer but also an accomplished pianist, singer, video game restorer, and skier. I remember when he was working on DirectSound3D, we would sometimes put our heads together to nail the formulas for effects such as...

This is an unsupported ride, so if you stop, you will fall over

Well, at least I only passed out once. To recap, The E's goaded me into joining them on a ride up Zoo Hill. I'm really not a climber. I'm taxed by the hill on the southbound 520 Trail leading to NE 51st St., so much so that I commute to work along a different route (taking 156th Ave. NE instead) just so I can avoid it. But I accepted...