Raymond Chen

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

Post by this author

Obtaining a window’s size and position while it is minimized

If you have a minimized window and want to know where it will go when you restore it, the GetWindowPlacement function will tell you. In particular, the tells you where the window would go if it were restored (as opposed to minimized or maximized). One perhaps-non-obvious flag is WPF_RESTORETOMAXIMIZED. This flag indicates that the ...

Diagnosing a problem with calling conventions

Putting together some skills you've already learned.

Differences between managers and programmers

If you find yourself in a meeting with a mix of managers and programmers, here's one way to tell the difference between them: Look at what they brough to the meeting. Did they bring a laptop computer? Score bonus points if the laptop computer is actually turned on during the meeting or if the laptop is special in some way (e.g., it ...

Another chance to see Elvis take on a mummy

For those in the Seattle area who missed it last year, The Fremont Outdoor Cinema is screening Bubba Ho-Tep on Friday, July 9th. Go see it. You won't be disappointed. Assuming what you were expecting to see was Elvis fighting a mummy. With the help of JFK. In a wheelchair. If you were expecting something else, then okay maybe you'...

What's the difference between SHGetMalloc, SHAlloc, CoGetMalloc, and CoTaskMemAlloc

There isn't any difference any more.

What’s the difference between SHGetMalloc, SHAlloc, CoGetMalloc, and CoTaskMemAlloc

There isn't any difference any more.

Don't name your DLL "Security.dll"

Reaching back into the history bucket... Some people have discovered that strange things happen if you name your DLL "security.dll". The reason is that there is already a system DLL called "security.dll"; it's the Security Support Provider Interface DLL, and it used to go by the name "security.dll", though nowadays the name "...

Don’t name your DLL “Security.dll”

Reaching back into the history bucket... Some people have discovered that strange things happen if you name your DLL "security.dll". The reason is that there is already a system DLL called "security.dll"; it's the Security Support Provider Interface DLL, and it used to go by the name "security.dll", though nowadays the name "...

Being in upper management must damage certain portions of your brain

The air must be thinner the higher up the management chain you go, or maybe it just gives you more opportunities to look stupid. Like this message: From: <some upper manager> Subject: <some subject> I will try to keep this relatively brief as I know how busy everyone is. <... 4-page message follows...> If ...

What's this fascination with Germanic languages?

Some people wondered about my fascination with Germanic languages and asked why I didn't branch out to other language families. It's basically laziness. I grew up speaking English (and a little of the Holo dialect, most of which has by now vanished from disuse), then studied German in high school and college, and most recently added...