If you are building an app that needs to run on a down-rev version of windows (or an old version of Internet Explorer) you need to pay attention to the settings of _WIN32_WINNT and _WIN32_IE. These specify to the compiler what minimum OS and IE will be supported on target systems.
Here is what I use for minimum support of "Vista":
#define _WIN32_WINNT _WIN32_WINNT_VISTA #define _WIN32_IE _WIN32_IE_IE80
I'll leave the Windows 2000 setting as an "exercise for the reader." The MS docs should be helpful.
These definitions are typically placed in the stdafx.h file, which is (by Microsoft's intention) included in every .cpp file.
I think you'll find that if you do this you will get errors saying that "symbol DecodePointer" does not exist, and the message(s) will point to where your code needs to change.