Why the heck does Win32 programming have so many parameters that are always supposed to be declared NULL? I mean - why don't compiler makers just say "well, we know it's going to be NULL, since the program won't compile if it isn't, so why don't we just leave that parameter out?"