Raymond Chen

Raymond has been involved in the evolution of Windows for more than 25 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 currently appears regularly on MSDN Channel 9’s One Dev Minute channel in the One Dev Question video series.

Post by this author

Improving the world one bad analogy at a time

One thing I am known for at Microsoft is my frequent use of bad analogies. Everybody else at work has had to suffer; now it's your turn. Why are there so many copies of svchost.exe running? What is svchost.exe anyway? Traditionally, each service runs in its own process. When you are ...

Emergency vacation

Hurricane Isabel made a mess of my weekend travel plans, so I decided, "If you can't beat 'em, join 'em." My outbound flight was cancelled, and even with the best possible substitution - a flight out the very next day - losing a day on a weekend trip pretty much kills it. So I extended it to a weeklong ...

The end of the scrollbar series

Okay, that's basically the end of the scrollbar series. Do people actually like the idea of a coding series? It gets very few comments, and it's a lot of work to write, so if nobody actually cares I can just write about quick little things and not try to be coherent from day to day. I guess that's what most blogs are like anyway. If you ...
Comments are closed.0 0
Code

Answers to exercise from Scrollbars Part 11

Exercise: Why do we use the formula c = a + (b-a)/2 instead of the simpler c = (a+b)/2? Answer: To avoid integer overflow in the computation of a+b. Here, a and b are window coordinates, and the window can be anywhere. If the window were placed at extreme coordinates like (...
Comments are closed.0 0
Code

Scrollbars part 12: Applying WM_NCCALCSIZE to our scrollbar sample

Now that we have learned about the intricacies of the WM_NCCALCSIZE message, we can use it to get rid of the flicker in our resizing code. We just take the trick we used above and apply it to the scroll program. First, we need to get rid of the bad flickery resize, so return the ...
Comments are closed.0 0
Code

Why does Win32 fail a module load if an import could not be resolved?

Because we tried it the other way and it was much worse. In 16-bit Windows, a module that didn't satisfy all its imports would still load. As long as you didn't call a missing import, you were fine. If you did try to call a missing import, you crashed pretty spectacularly with the ...

Scrollbars part 11: Towards an even deeper understanding of the WM_NCCALCSIZE message

The other form of the WM_NCCALCSIZE message is the complicated one, when the WPARAM is TRUE. In this case, the LPARAM is a pointer to a NCCALCSIZE_PARAMS structure. When Windows sends the WM_NCCALCSIZE message, the NCCALCSIZE_PARAMS structure is filled out like this...
Comments are closed.0 0
Code

Eric's complete guide to BSTR semantics

Eric Lippert has posted Eric's Complete Guide to BSTR Semantics. This is a document that is widely valued within Microsoft, since BSTR semantics are rather tricky, and I'm glad he's willing to share it with the world. In particular, Eric spends quite a bit of time discussion the very ...
Comments are closed.0 0
Code

Something about Microsoft employees and milk

Behold the power of milk. Or something. Here's another milk-related bug report from Paul Vick. Paul also has a bug report that challenges the philosophical underpinnings of the eventing model...

I'm not sure if this was a dare

Joe Beda stopped by my office, clutching a stack of documents he had just had notarized, and told me, "Raymond, you should become a notary public." "Why?" "It'd be fun." "Notarizing documents is fun?" "No, just being a notary public - just...

Feedback usabilla icon