The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Microspeak: SQMmed
Apr 6, 2010
Post comments count 0
Post likes count 0

Microspeak: SQMmed

Raymond Chen
Raymond Chen

The letters SQM originally stood for Service Quality Monitoring, but that doesn't really answer the question, "What is SQM?" SQM is the internal code name for the technologies behind what is publically known as the Microsoft Customer Experience Improvement Program. This is a voluntary program that customers can opt into, which gathers information about Office (say), information such as which menu options you use most often, how often you undo an autocorrection, what types of "impossible" things the program had to recover from, which error messages you've been shown, and which file format converters you use. (T...

When people ask for security holes as features: Non-administrators reading other users' stuff
Apr 5, 2010
Post comments count 0
Post likes count 0

When people ask for security holes as features: Non-administrators reading other users' stuff

Raymond Chen
Raymond Chen

Via the suggestion box, Aaron Lerch asks whether a non-administrator can retrieve/evaluate environment variables as they would appear for another user. This falls into the category of asking for a security hole as a feature, specifically an information disclosure security hole, because you are extracting information from a user's private data which has security access controls that do not grant everybody access. Generally speaking, users have full access to their data, as does the operating system itself, but nobody else. Administrators can get access to the data by taking ownership and modifying the ACL or ...

Why do non-folders in my shell namespace extension show up in the folder tree view?
Apr 2, 2010
Post comments count 0
Post likes count 0

Why do non-folders in my shell namespace extension show up in the folder tree view?

Raymond Chen
Raymond Chen

A customer was having trouble with their shell namespace extension: When we click the [+] button next to our shell namespace extension in the folder tree view, the tree view shows both files and folders, even though it's supposed to show only folders. Our does return the correct values for (including it for the folders and omitting it for the non-folders). What are we doing wrong? The tree view enumerates the children of a folder by calling and passing the flag while omitting the flag. This means that it is only interested in enumerating child folders. Child non-folders should be excluded from the enumer...

EnumClaw, the function that never was
Apr 1, 2010
Post comments count 0
Post likes count 0

EnumClaw, the function that never was

Raymond Chen
Raymond Chen

bhiggins asks about the mysterious function that existed in some versions of the Win32 documentation. I went digging through the MSDN archives and was close to giving up and declaring the cause lost, but then I found it: A copy of the documentation. EnumClaw The EnumClaw function returns the child or the parent of the window whose HWND is passed in. Parameters hwndParent [in] Handle to the parent window. Return Values If the function succeeds, the return value is the HWND of the child of the hwndParent window. If the window has no child, the return value is the HWND of the parent of the hwndPa...

2010 Q1 link clearance: Microsoft blogger edition
Mar 31, 2010
Post comments count 0
Post likes count 0

2010 Q1 link clearance: Microsoft blogger edition

Raymond Chen
Raymond Chen

It's that time again: Sending some link love to my colleagues.

The great thing about URL encodings is that there are so many to choose from
Mar 31, 2010
Post comments count 0
Post likes count 0

The great thing about URL encodings is that there are so many to choose from

Raymond Chen
Raymond Chen

A survey.

Non-Microspeak: Boiling the ocean
Mar 30, 2010
Post comments count 0
Post likes count 0

Non-Microspeak: Boiling the ocean

Raymond Chen
Raymond Chen

Some time ago, MSN Careers listed Boil the ocean as a workplace phrase you should learn. Thankfully, the phrase (meaning "to attempt something impossibly ambitious") is not currently in wide use in Microspeak. However, a friend of mine who works in another industry tells me that it is not only very much alive in his line of work, it became corrupted as it was imported. My friend's industry involves companies from around the world, and although the working language for meetings is English, most of the participants are not native speakers of the language. He suspects that the phrase boil the ocean was introduced ...

Ruth Bader Ginsburg, the yardstick for Wikipedia entries
Mar 29, 2010
Post comments count 0
Post likes count 0

Ruth Bader Ginsburg, the yardstick for Wikipedia entries

Raymond Chen
Raymond Chen

I use Ruth Bader Ginsburg's Wikipedia entry as a yardstick for other Wikipedia entries. At the time I'm writing this blog entry, her Wikipedia article is 1600 words long. So 1600 words is how many words Wikipedia assigns to the 20th most powerful woman (and the most powerful female lawyer) in the world. By comparison, Wikipedia has collectively decided that the 2007 Philadelphia Eagles season merits 5500 words. The exploits of a lackluster last-place American football team therefore clocks in at 3.4 Ginsburgs. In a sense, Wikipedia says that a last-place football team's exploits is over three times more signif...

What happens to the control names in the IDE when my program is running?
Mar 29, 2010
Post comments count 0
Post likes count 0

What happens to the control names in the IDE when my program is running?

Raymond Chen
Raymond Chen

nick_journals demonstrates some confusion about names in source code and their relationship to runtime behavior. A topic I am particularly interested in is the naming of controls, how it works... Every control gets a name from a developer...via the IDE (e.g btnOK) When using this function: GetWindowLong(handle,GWL_ID) it doesn't return the name itself but mostly a number or nothing. What is GWL_ID, the documentation isn't very clear on this. How does this whole system work, what are these numbers and where are the 'real' names? I'm going to answer the questions most technical first. That way you can...