Showing results for November 2003 - Page 3 of 3 - The Old New Thing

Nov 11, 2003
0
0

Safer subclassing

Raymond Chen
Raymond Chen

Answer to yesterday's homework assignment, with discussion.

Code
Nov 10, 2003
0
0

A warning to people averse to code

Raymond Chen
Raymond Chen

This is going to be a code-heavy week. People who are averse to code may want to just lie low until next week. I'll try to make it up by having next week be more storytelling-focused.

Other
Nov 10, 2003
0
0

How much do you expect from a framework layer?

Raymond Chen
Raymond Chen

If a framework exposes functionality provided by a lower layer, how hard should the framework try to insulate you from all the quirks and limitations of the lower layer? Instinctively, of course, you would say, "The framework should insulate me completely." But be careful what you ask for. If a frame...

Other
Nov 7, 2003
0
0

Returning values from a dialog procedure

Raymond Chen
Raymond Chen

For some reason, the way values are returned from a dialog procedure confuses people, so I'm going to try to explain it a different way. The trick with dialog box procedures is realizing that they actually need to return two pieces of information: Since tw...

Code
Nov 6, 2003
0
0

Why are companies so worried about retraining costs?

Raymond Chen
Raymond Chen

Remember, most people do not view the computer as a world to be explored. It is merely a means to an end. So they learn the five steps they need to follow, and if they can't do them, they get stuck. "I hit Alt+Tab like I always do, to switch to another program, but instead of switching, this strange window show...

Other
Nov 5, 2003
0
0

An anecdote about improper capitalization

Raymond Chen
Raymond Chen

I've already discussed some of the strange consequences of case-sensitive comparisons. Joe Beda mentioned the Internet Explorer capitalization bug that transformed somebody's name into a dead body. Allow me to elaborate. You might learn something. This bug occurred because ...

Other
Nov 4, 2003
0
0

Just follow the rules and nobody gets hurt

Raymond Chen
Raymond Chen

You may have been lazy and not bothered calling VirtualProtect(PAGE_EXECUTE) when you generated some code on the fly. You got away with it because the i386 processor page protections do not have a "read but don't execute" mode, so anything you could read you could also execute. Until ...

Code
Nov 3, 2003
0
1

The long and sad story of the Shell Folders key

Raymond Chen
Raymond Chen

When you are attempting to architect an operating system, backwards compatibility is one of the ones you just have to accept. But when new programs rely on app hacks designed for old programs, that makes you want to scream. Once upon a time, in what seems like a galaxy far far away (a Windows 95 beta release known as "M3"), we documented a regi...

CodeHistory