#include <windows.h>Include dependency graph for GetWindowsVersion.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Defines | |
| #define | IMPORT_EXPORT_GETWINDOWSVERSION_DLL __declspec(dllimport) |
| #define | OS_ERROR -1 |
| #define | OS_WIN32_WINDOWS_NT_3_51 0 |
| #define | OS_WIN32_WINDOWS_NT_4_0 1 |
| #define | OS_WIN32_WINDOWS_95 2 |
| #define | OS_WIN32_WINDOWS_98 3 |
| #define | OS_WIN32_WINDOWS_Me 4 |
| #define | OS_WIN32_WINDOWS_2000 5 |
| #define | OS_WIN32_WINDOWS_XP 6 |
| #define | OS_WIN32_WINDOWS_XP_64 7 |
| #define | OS_WIN32_WINDOWS_SERVER_2003 8 |
| #define | OS_WIN32_WINDOWS_SERVER_2003_R2 9 |
| #define | OS_WIN32_WINDOWS_SERVER_2003_64 10 |
| #define | OS_WIN32_WINDOWS_VISTA 11 |
| #define | OS_WIN32_WINDOWS_VISTA_64 12 |
| #define | OS_WIN32_WINDOWS_LONGHORN 13 |
| #define | OS_WIN32_WINDOWS_LONGHORN_64 14 |
Functions | |
| IMPORT_EXPORT_GETWINDOWSVERSION_DLL int | GetWindowsVersion (void) |
| #define IMPORT_EXPORT_GETWINDOWSVERSION_DLL __declspec(dllimport) |
Definition at line 10 of file GetWindowsVersion.h.
| #define OS_ERROR -1 |
| #define OS_WIN32_WINDOWS_2000 5 |
Definition at line 19 of file GetWindowsVersion.h.
Referenced by GetWindowsVersion(), main(), and WinMain().
| #define OS_WIN32_WINDOWS_95 2 |
| #define OS_WIN32_WINDOWS_98 3 |
| #define OS_WIN32_WINDOWS_LONGHORN 13 |
| #define OS_WIN32_WINDOWS_LONGHORN_64 14 |
Definition at line 28 of file GetWindowsVersion.h.
| #define OS_WIN32_WINDOWS_Me 4 |
| #define OS_WIN32_WINDOWS_NT_3_51 0 |
| #define OS_WIN32_WINDOWS_NT_4_0 1 |
| #define OS_WIN32_WINDOWS_SERVER_2003 8 |
| #define OS_WIN32_WINDOWS_SERVER_2003_64 10 |
Definition at line 24 of file GetWindowsVersion.h.
| #define OS_WIN32_WINDOWS_SERVER_2003_R2 9 |
| #define OS_WIN32_WINDOWS_VISTA 11 |
| #define OS_WIN32_WINDOWS_VISTA_64 12 |
Definition at line 26 of file GetWindowsVersion.h.
| #define OS_WIN32_WINDOWS_XP 6 |
| #define OS_WIN32_WINDOWS_XP_64 7 |
| IMPORT_EXPORT_GETWINDOWSVERSION_DLL int GetWindowsVersion | ( | void | ) |
Definition at line 6 of file GetWindowsVersion.c.
References NULL, OS_ERROR, OS_WIN32_WINDOWS_2000, OS_WIN32_WINDOWS_95, OS_WIN32_WINDOWS_98, OS_WIN32_WINDOWS_LONGHORN, OS_WIN32_WINDOWS_Me, OS_WIN32_WINDOWS_NT_3_51, OS_WIN32_WINDOWS_NT_4_0, OS_WIN32_WINDOWS_SERVER_2003, OS_WIN32_WINDOWS_SERVER_2003_R2, OS_WIN32_WINDOWS_VISTA, OS_WIN32_WINDOWS_XP, OS_WIN32_WINDOWS_XP_64, si, and SM_SERVERR2.
Referenced by main(), and WinMain().
00007 { 00008 OSVERSIONINFOEX osvi; 00009 BOOL bOsVersionInfoEx; 00010 00011 ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); 00012 osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); 00013 00014 if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) ) 00015 { 00016 osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); 00017 if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) ) return OS_ERROR; 00018 } 00019 00020 switch (osvi.dwPlatformId) 00021 { 00022 case VER_PLATFORM_WIN32_NT: 00023 if ( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0 ) 00024 { 00025 if( osvi.wProductType == VER_NT_WORKSTATION ) return OS_WIN32_WINDOWS_VISTA; 00026 else return OS_WIN32_WINDOWS_LONGHORN; 00027 } 00028 00029 if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 ) 00030 { 00031 SYSTEM_INFO si; 00032 PGNSI pGNSI; 00033 pGNSI = (PGNSI) GetProcAddress(GetModuleHandle("kernel32.dll"),"GetNativeSystemInfo"); 00034 if(NULL != pGNSI) pGNSI(&si); 00035 00036 if( GetSystemMetrics(SM_SERVERR2) ) return OS_WIN32_WINDOWS_SERVER_2003_R2; 00037 else 00038 if( osvi.wProductType == VER_NT_WORKSTATION && si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) return OS_WIN32_WINDOWS_XP_64; 00039 else return OS_WIN32_WINDOWS_SERVER_2003; 00040 } 00041 00042 if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 ) return OS_WIN32_WINDOWS_XP; 00043 if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 ) return OS_WIN32_WINDOWS_2000; 00044 if ( osvi.dwMajorVersion == 4 ) return OS_WIN32_WINDOWS_NT_4_0; 00045 if ( osvi.dwMajorVersion == 3 && osvi.dwMinorVersion == 51 ) return OS_WIN32_WINDOWS_NT_3_51; 00046 break; 00047 00048 case VER_PLATFORM_WIN32_WINDOWS: 00049 if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0) return OS_WIN32_WINDOWS_95; 00050 if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10) return OS_WIN32_WINDOWS_98; 00051 if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90) return OS_WIN32_WINDOWS_Me; 00052 break; 00053 } 00054 return OS_ERROR; 00055 }
Here is the caller graph for this function:

1.5.1