Quote Originally Posted by GCDEF View Post
What are you basing that on? The first line in MSDN's documentation for #define says "You can use the #define directive to give a meaningful name to a constant in your program", and they do it all over the place.
Two more thinks:
* namespace scoping (#define's have no clue about it).
* debugging.

And I will repeat also, that does not make it correct and most of Microsoft API was written using C language so they are hamstrung with backward compatibility.

P.S. Jeff++, do not use #defines, specially for magic numbers.