|
|
1.1.1.2 root 1: /*****************************************************************************\
2: * *
1.1.1.3 ! root 3: * winver.h - Version management functions, types, and definitions *
1.1.1.2 root 4: * *
5: * Include file for VER.DLL. This library is *
6: * designed to allow version stamping of Windows executable files*
7: * and of special .VER files for DOS executable files. *
8: * *
9: * Copyright (c) 1992, Microsoft Corp. All rights reserved *
10: * *
11: \*****************************************************************************/
1.1 root 12:
13: #ifndef VER_H
14: #define VER_H
15:
16: /* ----- Symbols ----- */
17: #define VS_FILE_INFO RT_VERSION
1.1.1.2 root 18: #define VS_VERSION_INFO 1
19: #define VS_USER_DEFINED 100
1.1 root 20:
21: /* ----- VS_VERSION.dwFileFlags ----- */
22: #define VS_FFI_SIGNATURE 0xFEEF04BDL
23: #define VS_FFI_STRUCVERSION 0x00010000L
24: #define VS_FFI_FILEFLAGSMASK 0x0000003FL
25:
26: /* ----- VS_VERSION.dwFileFlags ----- */
27: #define VS_FF_DEBUG 0x00000001L
28: #define VS_FF_PRERELEASE 0x00000002L
29: #define VS_FF_PATCHED 0x00000004L
30: #define VS_FF_PRIVATEBUILD 0x00000008L
31: #define VS_FF_INFOINFERRED 0x00000010L
32: #define VS_FF_SPECIALBUILD 0x00000020L
33:
34: /* ----- VS_VERSION.dwFileOS ----- */
35: #define VOS_UNKNOWN 0x00000000L
36: #define VOS_DOS 0x00010000L
37: #define VOS_OS216 0x00020000L
38: #define VOS_OS232 0x00030000L
39: #define VOS_NT 0x00040000L
40:
41: #define VOS__BASE 0x00000000L
42: #define VOS__WINDOWS16 0x00000001L
43: #define VOS__PM16 0x00000002L
44: #define VOS__PM32 0x00000003L
45: #define VOS__WINDOWS32 0x00000004L
46:
47: #define VOS_DOS_WINDOWS16 0x00010001L
48: #define VOS_DOS_WINDOWS32 0x00010004L
49: #define VOS_OS216_PM16 0x00020002L
50: #define VOS_OS232_PM32 0x00030003L
51: #define VOS_NT_WINDOWS32 0x00040004L
52:
53: /* ----- VS_VERSION.dwFileType ----- */
54: #define VFT_UNKNOWN 0x00000000L
55: #define VFT_APP 0x00000001L
56: #define VFT_DLL 0x00000002L
57: #define VFT_DRV 0x00000003L
58: #define VFT_FONT 0x00000004L
59: #define VFT_VXD 0x00000005L
60: #define VFT_STATIC_LIB 0x00000007L
61:
62: /* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV ----- */
63: #define VFT2_UNKNOWN 0x00000000L
64: #define VFT2_DRV_PRINTER 0x00000001L
65: #define VFT2_DRV_KEYBOARD 0x00000002L
66: #define VFT2_DRV_LANGUAGE 0x00000003L
67: #define VFT2_DRV_DISPLAY 0x00000004L
68: #define VFT2_DRV_MOUSE 0x00000005L
69: #define VFT2_DRV_NETWORK 0x00000006L
70: #define VFT2_DRV_SYSTEM 0x00000007L
71: #define VFT2_DRV_INSTALLABLE 0x00000008L
72: #define VFT2_DRV_SOUND 0x00000009L
1.1.1.2 root 73: #define VFT2_DRV_COMM 0x0000000AL
1.1 root 74:
75: /* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT ----- */
76: #define VFT2_FONT_RASTER 0x00000001L
77: #define VFT2_FONT_VECTOR 0x00000002L
78: #define VFT2_FONT_TRUETYPE 0x00000003L
79:
80: /* ----- VerFindFile() flags ----- */
81: #define VFFF_ISSHAREDFILE 0x0001
82:
83: #define VFF_CURNEDEST 0x0001
84: #define VFF_FILEINUSE 0x0002
85: #define VFF_BUFFTOOSMALL 0x0004
86:
87: /* ----- VerInstallFile() flags ----- */
88: #define VIFF_FORCEINSTALL 0x0001
89: #define VIFF_DONTDELETEOLD 0x0002
90:
91: #define VIF_TEMPFILE 0x00000001L
92: #define VIF_MISMATCH 0x00000002L
93: #define VIF_SRCOLD 0x00000004L
94:
95: #define VIF_DIFFLANG 0x00000008L
96: #define VIF_DIFFCODEPG 0x00000010L
97: #define VIF_DIFFTYPE 0x00000020L
98:
99: #define VIF_WRITEPROT 0x00000040L
100: #define VIF_FILEINUSE 0x00000080L
101: #define VIF_OUTOFSPACE 0x00000100L
102: #define VIF_ACCESSVIOLATION 0x00000200L
103: #define VIF_SHARINGVIOLATION 0x00000400L
104: #define VIF_CANNOTCREATE 0x00000800L
105: #define VIF_CANNOTDELETE 0x00001000L
106: #define VIF_CANNOTRENAME 0x00002000L
107: #define VIF_CANNOTDELETECUR 0x00004000L
108: #define VIF_OUTOFMEMORY 0x00008000L
109:
110: #define VIF_CANNOTREADSRC 0x00010000L
111: #define VIF_CANNOTREADDST 0x00020000L
112:
113: #define VIF_BUFFTOOSMALL 0x00040000L
114:
1.1.1.2 root 115: #ifndef RC_INVOKED /* RC doesn't need to see the rest of this */
1.1 root 116:
117: /* ----- Types and structures ----- */
118:
119: typedef struct tagVS_FIXEDFILEINFO
120: {
1.1.1.2 root 121: DWORD dwSignature; /* e.g. 0xfeef04bd */
122: DWORD dwStrucVersion; /* e.g. 0x00000042 = "0.42" */
123: DWORD dwFileVersionMS; /* e.g. 0x00030075 = "3.75" */
124: DWORD dwFileVersionLS; /* e.g. 0x00000031 = "0.31" */
125: DWORD dwProductVersionMS; /* e.g. 0x00030010 = "3.10" */
126: DWORD dwProductVersionLS; /* e.g. 0x00000031 = "0.31" */
127: DWORD dwFileFlagsMask; /* = 0x3F for version "0.42" */
128: DWORD dwFileFlags; /* e.g. VFF_DEBUG | VFF_PRERELEASE */
129: DWORD dwFileOS; /* e.g. VOS_DOS_WINDOWS16 */
130: DWORD dwFileType; /* e.g. VFT_DRIVER */
131: DWORD dwFileSubtype; /* e.g. VFT2_DRV_KEYBOARD */
132: DWORD dwFileDateMS; /* e.g. 0 */
133: DWORD dwFileDateLS; /* e.g. 0 */
1.1 root 134: } VS_FIXEDFILEINFO;
135:
1.1.1.2 root 136: /* ----- Function prototypes ----- */
1.1 root 137:
1.1.1.2 root 138: DWORD
139: APIENTRY
1.1.1.3 ! root 140: VerFindFileA(
1.1.1.2 root 141: DWORD uFlags,
142: LPSTR szFileName,
143: LPSTR szWinDir,
144: LPSTR szAppDir,
145: LPSTR szCurDir,
146: LPDWORD lpuCurDirLen,
147: LPSTR szDestDir,
148: LPDWORD lpuDestDirLen
149: );
1.1.1.3 ! root 150: DWORD
! 151: APIENTRY
! 152: VerFindFileW(
! 153: DWORD uFlags,
! 154: LPWSTR szFileName,
! 155: LPWSTR szWinDir,
! 156: LPWSTR szAppDir,
! 157: LPWSTR szCurDir,
! 158: LPDWORD lpuCurDirLen,
! 159: LPWSTR szDestDir,
! 160: LPDWORD lpuDestDirLen
! 161: );
! 162: #ifdef UNICODE
! 163: #define VerFindFile VerFindFileW
! 164: #else
! 165: #define VerFindFile VerFindFileA
! 166: #endif // !UNICODE
1.1.1.2 root 167:
168: DWORD
169: APIENTRY
1.1.1.3 ! root 170: VerInstallFileA(
1.1.1.2 root 171: DWORD uFlags,
172: LPSTR szSrcFileName,
173: LPSTR szDestFileName,
174: LPSTR szSrcDir,
175: LPSTR szDestDir,
176: LPSTR szCurDir,
177: LPSTR szTmpFile,
178: LPDWORD lpuTmpFileLen
179: );
1.1.1.3 ! root 180: DWORD
! 181: APIENTRY
! 182: VerInstallFileW(
! 183: DWORD uFlags,
! 184: LPWSTR szSrcFileName,
! 185: LPWSTR szDestFileName,
! 186: LPWSTR szSrcDir,
! 187: LPWSTR szDestDir,
! 188: LPWSTR szCurDir,
! 189: LPWSTR szTmpFile,
! 190: LPDWORD lpuTmpFileLen
! 191: );
! 192: #ifdef UNICODE
! 193: #define VerInstallFile VerInstallFileW
! 194: #else
! 195: #define VerInstallFile VerInstallFileA
! 196: #endif // !UNICODE
1.1.1.2 root 197:
198: /* Returns size of version info in bytes */
199: DWORD
200: APIENTRY
1.1.1.3 ! root 201: GetFileVersionInfoSizeA(
! 202: LPSTR lptstrFilename, /* Filename of version stamped file */
! 203: LPDWORD lpdwHandle
! 204: ); /* Information for use by GetFileVersionInfo */
! 205: /* Returns size of version info in bytes */
! 206: DWORD
! 207: APIENTRY
! 208: GetFileVersionInfoSizeW(
! 209: LPWSTR lptstrFilename, /* Filename of version stamped file */
1.1.1.2 root 210: LPDWORD lpdwHandle
211: ); /* Information for use by GetFileVersionInfo */
1.1.1.3 ! root 212: #ifdef UNICODE
! 213: #define GetFileVersionInfoSize GetFileVersionInfoSizeW
! 214: #else
! 215: #define GetFileVersionInfoSize GetFileVersionInfoSizeA
! 216: #endif // !UNICODE
1.1.1.2 root 217:
218: /* Read version info into buffer */
219: BOOL
220: APIENTRY
1.1.1.3 ! root 221: GetFileVersionInfoA(
! 222: LPSTR lptstrFilename, /* Filename of version stamped file */
! 223: DWORD dwHandle, /* Information from GetFileVersionSize */
! 224: DWORD dwLen, /* Length of buffer for info */
! 225: LPVOID lpData
! 226: ); /* Buffer to place the data structure */
! 227: /* Read version info into buffer */
! 228: BOOL
! 229: APIENTRY
! 230: GetFileVersionInfoW(
! 231: LPWSTR lptstrFilename, /* Filename of version stamped file */
1.1.1.2 root 232: DWORD dwHandle, /* Information from GetFileVersionSize */
233: DWORD dwLen, /* Length of buffer for info */
234: LPVOID lpData
235: ); /* Buffer to place the data structure */
1.1.1.3 ! root 236: #ifdef UNICODE
! 237: #define GetFileVersionInfo GetFileVersionInfoW
! 238: #else
! 239: #define GetFileVersionInfo GetFileVersionInfoA
! 240: #endif // !UNICODE
1.1.1.2 root 241:
242: DWORD
243: APIENTRY
1.1.1.3 ! root 244: VerLanguageNameA(
1.1.1.2 root 245: DWORD wLang,
246: LPSTR szLang,
247: DWORD nSize
248: );
1.1.1.3 ! root 249: DWORD
! 250: APIENTRY
! 251: VerLanguageNameW(
! 252: DWORD wLang,
! 253: LPWSTR szLang,
! 254: DWORD nSize
! 255: );
! 256: #ifdef UNICODE
! 257: #define VerLanguageName VerLanguageNameW
! 258: #else
! 259: #define VerLanguageName VerLanguageNameA
! 260: #endif // !UNICODE
1.1.1.2 root 261:
262: BOOL
263: APIENTRY
1.1.1.3 ! root 264: VerQueryValueA(
1.1.1.2 root 265: const LPVOID pBlock,
266: LPSTR lpSubBlock,
267: LPVOID * lplpBuffer,
268: LPDWORD lpuLen
269: );
1.1.1.3 ! root 270: BOOL
! 271: APIENTRY
! 272: VerQueryValueW(
! 273: const LPVOID pBlock,
! 274: LPWSTR lpSubBlock,
! 275: LPVOID * lplpBuffer,
! 276: LPDWORD lpuLen
! 277: );
! 278: #ifdef UNICODE
! 279: #define VerQueryValue VerQueryValueW
! 280: #else
! 281: #define VerQueryValue VerQueryValueA
! 282: #endif // !UNICODE
1.1 root 283:
1.1.1.2 root 284: #endif /* !RC_INVOKED */
285: #endif /* !VER_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.