The following table describes the preferred macros in use by the Windows header files.
| Minimum system required | Macros to define |
|---|---|
| Windows Vista | NTDDI_VERSION >=NTDDI_LONGHORN |
| Windows Server 2003 SP1 | NTDDI_VERSION >=NTDDI_WS03SP1 |
| Windows Server 2003 | NTDDI_VERSION >=NTDDI_WS03 |
| Windows XP SP2 | NTDDI_VERSION >=NTDDI_WINXPSP2 |
| Windows XP SP1 | NTDDI_VERSION >=NTDDI_WINXPSP1 |
| Windows XP | NTDDI_VERSION >=NTDDI_WINXP |
| Windows 2000 SP4 | NTDDI_VERSION >=NTDDI_WIN2KSP4 |
| Windows 2000 SP3 | NTDDI_VERSION >=NTDDI_WIN2KSP3 |
| Windows 2000 SP2 | NTDDI_VERSION >=NTDDI_WIN2KSP2 |
| Windows 2000 SP1 | NTDDI_VERSION >=NTDDI_WIN2KSP1 |
| Windows 2000 | NTDDI_VERSION >=NTDDI_WIN2K |
The following table describes the legacy macros in use by the Windows header files.
| Minimum system required | Macros to define |
|---|---|
| Windows Vista | _WIN32_WINNT>=0x0600 WINVER>=0x0600 |
| Windows Server 2003 | _WIN32_WINNT>=0x0502 WINVER>=0x0502 |
| Windows XP | _WIN32_WINNT>=0x0501 WINVER>=0x0501 |
| Windows 2000 | _WIN32_WINNT>=0x0500 WINVER>=0x0500 |
| Windows NT 4.0 | _WIN32_WINNT>=0x0400 WINVER>=0x0400 |
| Windows Me | _WIN32_WINDOWS=0x0500 WINVER>=0x0500 |
| Windows 98 | _WIN32_WINDOWS>=0x0410 WINVER>=0x0410 |
| Windows 95 | _WIN32_WINDOWS>=0x0400 WINVER>=0x0400 |
| Internet Explorer 7.0 | _WIN32_IE>=0x0700 |
| Internet Explorer 6.0 SP2 | _WIN32_IE>=0x0603 |
| Internet Explorer 6.0 SP1 | _WIN32_IE>=0x0601 |
| Internet Explorer 6.0 | _WIN32_IE>=0x0600 |
| Internet Explorer 5.5 | _WIN32_IE>=0x0550 |
| Internet Explorer 5.01 | _WIN32_IE>=0x0501 |
| Internet Explorer 5.0, 5.0a, 5.0b | _WIN32_IE>=0x0500 |
| Internet Explorer 4.01 | _WIN32_IE>=0x0401 |
| Internet Explorer 4.0 | _WIN32_IE>=0x0400 |
| Internet Explorer 3.0, 3.01, 3.02 | _WIN32_IE>=0x0300 |