|
|
1.1.1.2 ! root 1: /*****************************************************************************\ ! 2: * * ! 3: * ver.h - Version management functions, types, and definitions * ! 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 ! 140: VerFindFile( ! 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: ); ! 150: ! 151: DWORD ! 152: APIENTRY ! 153: VerInstallFile( ! 154: DWORD uFlags, ! 155: LPSTR szSrcFileName, ! 156: LPSTR szDestFileName, ! 157: LPSTR szSrcDir, ! 158: LPSTR szDestDir, ! 159: LPSTR szCurDir, ! 160: LPSTR szTmpFile, ! 161: LPDWORD lpuTmpFileLen ! 162: ); ! 163: ! 164: /* Returns size of version info in bytes */ ! 165: DWORD ! 166: APIENTRY ! 167: GetFileVersionInfoSize( ! 168: LPSTR lpstrFilename, /* Filename of version stamped file */ ! 169: LPDWORD lpdwHandle ! 170: ); /* Information for use by GetFileVersionInfo */ ! 171: ! 172: /* Read version info into buffer */ ! 173: BOOL ! 174: APIENTRY ! 175: GetFileVersionInfo( ! 176: LPSTR lpstrFilename, /* Filename of version stamped file */ ! 177: DWORD dwHandle, /* Information from GetFileVersionSize */ ! 178: DWORD dwLen, /* Length of buffer for info */ ! 179: LPVOID lpData ! 180: ); /* Buffer to place the data structure */ ! 181: ! 182: DWORD ! 183: APIENTRY ! 184: VerLanguageName( ! 185: DWORD wLang, ! 186: LPSTR szLang, ! 187: DWORD nSize ! 188: ); ! 189: ! 190: BOOL ! 191: APIENTRY ! 192: VerQueryValue( ! 193: const LPVOID pBlock, ! 194: LPSTR lpSubBlock, ! 195: LPVOID * lplpBuffer, ! 196: LPDWORD lpuLen ! 197: ); 1.1 root 198: 1.1.1.2 ! root 199: #endif /* !RC_INVOKED */ ! 200: #endif /* !VER_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.