Implemented inline version of the iswxxx functions.
[wine] / include / winver.h
1 /* Definitions for the VERsion infolibrary (VER.DLL)
2  * 
3  * Copyright 1996 Marcus Meissner
4  */
5
6 #ifndef __WINE_WINVER_H
7 #define __WINE_WINVER_H
8
9 #include "windef.h"
10
11 #ifdef __cplusplus
12 extern "C" {
13 #endif /* defined(__cplusplus) */
14
15 /* resource ids for different version infos */
16 /* These are internal resources for win16, but simple numbers in win32 */
17 /* All win32 defines should be moved to winver.h */
18 #define VS_FILE_INFO16          MAKEINTRESOURCE16(16)
19 #define VS_VERSION_INFO16       MAKEINTRESOURCE16(1)
20 #define VS_USER_INFO16          MAKEINTRESOURCE16(100)
21
22 #define VS_FILE_INFO            16
23 #define VS_VERSION_INFO         1
24 #define VS_USER_DEFINED         100
25
26 #define VS_FFI_SIGNATURE        0xfeef04bdL     /* FileInfo Magic */
27 #define VS_FFI_STRUCVERSION     0x00010000L     /* struc version 1.0 */
28 #define VS_FFI_FILEFLAGSMASK    0x0000003fL     /* valid flags */
29
30 /* VS_VERSION.dwFileFlags */
31 #define VS_FF_DEBUG             0x01L
32 #define VS_FF_PRERELEASE        0x02L
33 #define VS_FF_PATCHED           0x04L
34 #define VS_FF_PRIVATEBUILD      0x08L
35 #define VS_FF_INFOINFERRED      0x10L
36 #define VS_FF_SPECIALBUILD      0x20L
37
38 /* VS_VERSION.dwFileOS */
39
40 /* major os version */
41 #define VOS_UNKNOWN             0x00000000L
42 #define VOS_DOS                 0x00010000L
43 #define VOS_OS216               0x00020000L
44 #define VOS_OS232               0x00030000L
45 #define VOS_NT                  0x00040000L
46
47 /* minor os version */
48 #define VOS__BASE               0x00000000L
49 #define VOS__WINDOWS16          0x00000001L
50 #define VOS__PM16               0x00000002L
51 #define VOS__PM32               0x00000003L
52 #define VOS__WINDOWS32          0x00000004L
53
54 /* possible versions */
55 #define VOS_DOS_WINDOWS16       (VOS_DOS|VOS__WINDOWS16)
56 #define VOS_DOS_WINDOWS32       (VOS_DOS|VOS__WINDOWS32)
57 #define VOS_OS216_PM16          (VOS_OS216|VOS__PM16)
58 #define VOS_OS232_PM32          (VOS_OS232|VOS__PM32)
59 #define VOS_NT_WINDOWS32        (VOS_NT|VOS__WINDOWS32)
60
61 /* VS_VERSION.dwFileType */
62 #define VFT_UNKNOWN             0x00000000L
63 #define VFT_APP                 0x00000001L
64 #define VFT_DLL                 0x00000002L
65 #define VFT_DRV                 0x00000003L
66 #define VFT_FONT                0x00000004L
67 #define VFT_VXD                 0x00000005L
68 /* ??one type missing??         0x00000006L -Marcus */
69 #define VFT_STATIC_LIB          0x00000007L
70
71 /* VS_VERSION.dwFileSubtype for VFT_DRV */
72 #define VFT2_UNKNOWN            0x00000000L
73 #define VFT2_DRV_PRINTER        0x00000001L
74 #define VFT2_DRV_KEYBOARD       0x00000002L
75 #define VFT2_DRV_LANGUAGE       0x00000003L
76 #define VFT2_DRV_DISPLAY        0x00000004L
77 #define VFT2_DRV_MOUSE          0x00000005L
78 #define VFT2_DRV_NETWORK        0x00000006L
79 #define VFT2_DRV_SYSTEM         0x00000007L
80 #define VFT2_DRV_INSTALLABLE    0x00000008L
81 #define VFT2_DRV_SOUND          0x00000009L
82 #define VFT2_DRV_COMM           0x0000000aL
83 #define VFT2_DRV_INPUTMETHOD    0x0000000bL
84
85 /* VS_VERSION.dwFileSubtype for VFT_FONT */
86 #define VFT2_FONT_RASTER        0x00000001L
87 #define VFT2_FONT_VECTOR        0x00000002L
88 #define VFT2_FONT_TRUETYPE      0x00000003L
89
90 /* VerFindFile Flags */
91         /* input */
92 #define VFFF_ISSHAREDFILE       0x0001
93
94         /* output (returned) */
95 #define VFF_CURNEDEST           0x0001
96 #define VFF_FILEINUSE           0x0002
97 #define VFF_BUFFTOOSMALL        0x0004
98
99 /* VerInstallFile Flags */
100         /* input */
101 #define VIFF_FORCEINSTALL       0x0001
102 #define VIFF_DONTDELETEOLD      0x0002
103
104         /* output (return) */
105 #define VIF_TEMPFILE            0x00000001L
106 #define VIF_MISMATCH            0x00000002L
107 #define VIF_SRCOLD              0x00000004L
108 #define VIF_DIFFLANG            0x00000008L
109 #define VIF_DIFFCODEPG          0x00000010L
110 #define VIF_DIFFTYPE            0x00000020L
111 #define VIF_WRITEPROT           0x00000040L
112 #define VIF_FILEINUSE           0x00000080L
113 #define VIF_OUTOFSPACE          0x00000100L
114 #define VIF_ACCESSVIOLATION     0x00000200L
115 #define VIF_SHARINGVIOLATION    0x00000400L
116 #define VIF_CANNOTCREATE        0x00000800L
117 #define VIF_CANNOTDELETE        0x00001000L
118 #define VIF_CANNOTRENAME        0x00002000L
119 #define VIF_CANNOTDELETECUR     0x00004000L
120 #define VIF_OUTOFMEMORY         0x00008000L
121 #define VIF_CANNOTREADSRC       0x00010000L
122 #define VIF_CANNOTREADDST       0x00020000L
123 #define VIF_BUFFTOOSMALL        0x00040000L
124
125 typedef struct tagVS_FIXEDFILEINFO {
126         DWORD   dwSignature;
127         DWORD   dwStrucVersion;
128         DWORD   dwFileVersionMS;
129         DWORD   dwFileVersionLS;
130         DWORD   dwProductVersionMS;
131         DWORD   dwProductVersionLS;
132         DWORD   dwFileFlagsMask;
133         DWORD   dwFileFlags;
134         DWORD   dwFileOS;
135         DWORD   dwFileType;
136         DWORD   dwFileSubtype;
137         DWORD   dwFileDateMS;
138         DWORD   dwFileDateLS;
139 } VS_FIXEDFILEINFO;
140
141
142 #ifndef RC_INVOKED
143
144 /* function prototypes */
145
146 DWORD       WINAPI VerFindFileA(UINT,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT*,LPSTR,UINT*);
147 DWORD       WINAPI VerFindFileW(UINT,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT*,LPWSTR,UINT*);
148 #define     VerFindFile WINELIB_NAME_AW(VerFindFile)
149 DWORD       WINAPI VerInstallFileA(UINT,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT*);
150 DWORD       WINAPI VerInstallFileW(UINT,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT*);
151 #define     VerInstallFile WINELIB_NAME_AW(VerInstallFile)
152 DWORD       WINAPI VerLanguageNameA(UINT,LPSTR,UINT);
153 DWORD       WINAPI VerLanguageNameW(UINT,LPWSTR,UINT);
154 #define     VerLanguageName WINELIB_NAME_AW(VerLanguageName)
155 DWORD       WINAPI VerQueryValueA(LPVOID,LPCSTR,LPVOID*,UINT*);
156 DWORD       WINAPI VerQueryValueW(LPVOID,LPCWSTR,LPVOID*,UINT*);
157 #define     VerQueryValue WINELIB_NAME_AW(VerQueryValue)
158 DWORD       WINAPI GetFileVersionInfoSizeA(LPCSTR,LPDWORD);
159 DWORD       WINAPI GetFileVersionInfoSizeW(LPCWSTR,LPDWORD);
160 #define     GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize)
161 BOOL        WINAPI GetFileVersionInfoA(LPCSTR,DWORD,DWORD,LPVOID);
162 BOOL        WINAPI GetFileVersionInfoW(LPCWSTR,DWORD,DWORD,LPVOID);
163 #define     GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo)
164
165 /* 20 GETFILEVERSIONINFORAW */
166
167 #endif /* RC_INVOKED */
168
169 #ifdef __cplusplus
170 } /* extern "C" */
171 #endif /* defined(__cplusplus) */
172
173 #endif /* __WINE_WINVER_H */