libSBNW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Macros Modules Pages
SagittariusPlatformWin.h
1 #ifndef __SAGITTARIUS_PLATFORM_WIN_H_
2 #define __SAGITTARIUS_PLATFORM_WIN_H_
3 
4 //constants that hold the correspond to various windows versions
5 //see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745%28v=vs.85%29.aspx (if it survives MS's constant reorganizing)
6 #define SAGITTARIUS_WINVER_WIN7 5 //Windows 7
7 #define SAGITTARIUS_WINVER_WINS2008 4 //Windows Server 2008
8 #define SAGITTARIUS_WINVER_WINVISTA 3 //Windows Vista
9 #define SAGITTARIUS_WINVER_WINS2003 2 //Windows Server 2003
10 #define SAGITTARIUS_WINVER_WINXP 1 //Windows XP
11 #define SAGITTARIUS_WINVER_WIN2000 0 //Windows 2000
12 
13 //service packs
14 #define SAGITTARIUS_WINSP_NOSP 0
15 #define SAGITTARIUS_WINSP_SP1 1
16 #define SAGITTARIUS_WINSP_SP2 2
17 #define SAGITTARIUS_WINSP_SP3 3
18 
19 #if NTDDI_VERSION == NTDDI_WIN7 //Windows 7
20  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WIN7
21  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_NOSP
22 #elif NTDDI_VERSION == NTDDI_WS08 //Windows Server 2008
23  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINS2008
24  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_NOSP
25 #elif NTDDI_VERSION == NTDDI_VISTASP1 //Windows Vista SP1
26  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINVISTA
27  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_SP1
28 #elif NTDDI_VERSION == NTDDI_VISTA //Windows Vista
29  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINVISTA
30  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_NOSP
31 #elif NTDDI_VERSION == NTDDI_WS03SP2 //Server 2003 SP2
32  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINS2003
33  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_SP2
34 #elif NTDDI_VERSION == NTDDI_WS03SP1 //Server 2003 SP1
35  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINS2003
36  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_SP1
37 #elif NTDDI_VERSION == NTDDI_WS03 //Server 2003
38  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINS2003
39  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_NOSP
40 #elif NTDDI_VERSION == NTDDI_WINXPSP3 //XP SP3
41  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINXP
42  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_SP3
43 #elif NTDDI_VERSION == NTDDI_WINXPSP2 //XP SP2
44  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINXP
45  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_SP2
46 #elif NTDDI_VERSION == NTDDI_WINXPSP1 //XP SP1
47  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINXP
48  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_SP1
49 #elif NTDDI_VERSION == NTDDI_WINXP //XP
50  #define SAGITTARIUS_WINVER SAGITTARIUS_WINVER_WINXP
51  #define SAGITTARIUS_WINSP SAGITTARIUS_WINSP_NOSP
52 #elif NTDDI_VERSION < NTDDI_WINXP
53  #error "Windows is older than minimum supported version"
54 #endif
55 
56 
57 #define SAGITTARIUS_WIN_MINVER _WIN32_WINNT
58 
59 #define SAGITTARIUS_WIN_MINVER_WIN7 _WIN32_WINNT_WIN7 //Windows 7
60 #define SAGITTARIUS_WIN_MINVER_WINS2008 _WIN32_WINNT_WS08
61 #define SAGITTARIUS_WIN_MINVER_WINVISTA _WIN32_WINNT_VISTA
62 #define SAGITTARIUS_WIN_MINVER_WIN03 _WIN32_WINNT_WS03 //Server 2003 with SP1 *OR* XP with SP2
63 #define SAGITTARIUS_WIN_MINVER_WINXP _WIN32_WINNT_WINXP
64 #define SAGITTARIUS_WIN_MINVER_WIN2000 _WIN32_WINNT_WIN2K
65 
66 #endif