The Old New Thing

Windows Vista has more extended options on the context menu

As we saw when we discussed context menus, holding down the shift key when opening a context menu adds so-called extended verbs to the menu. These are verbs that are less frequently used whose presence would clutter up the menu or pose an attractive nuisance. For example, the "Command Prompt Here" command is an extended command since your ...

We're all in this together: Maintaining common tools

In the Windows division, as with any other product group, there is a common "bag of tools" that people tend to rely on to get through the day. Occasionally, somebody will encounter a problem with one of these tools. When I run Program Q, I get the message XYZ, and then it appears to get stuck in an infinite loop allocating more and more ...

Do you have a Starbucks name?

Annabelle Gurwitch has found what may be one of the few remaining places where you can be anybody you want: Starbucks. Check out the part towards the end where people on the street are asked to share their Starbucks names. I'm reminded of a time many years ago when Schultzy's Sausage had expanded to a second location in Redmond. (They ...

What are these spurious nop instructions doing in my C# code?

Prerequisites: Basic understanding of assembly language. When you debug through some managed code at the assembly level, you may find that there are an awful lot of instructions scattered throughout your method. What are they doing there; isn't the JIT smart enough to remove them? Isn't this going to slow down execution of my program? It is...

The Radioactive Boy Scout is back in the news

The Radioactive Boy Scout appears to be back to his old tricks.¹ Nitpicker's Corner ¹Although this statement is written as if it were a fact, it is actually my interpretation of a newspaper article and is not an official position of Microsoft Corporation...

What are these strange cmp [ecx], ecx instructions doing in my C# code?

When you debug through some managed code at the assembly level, you'll find a whole lot of seemingly pointless instructions that perform a comparison but ignore the result. What's the point of comparing two values if you don't care what the result is? In C++, invoking an instance method on a pointer results in undefined behavior. In other ...