File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                winver.d                               *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                 Translated from MinGW Windows headers                 *
4e2933c620 2015-04-21        kinaba: *                           by Stewart Gordon                           *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
c2b7a98c21 2011-02-23        kinaba: module win32.winver;
9b639cf2d6 2015-05-05        kinaba: pragma(lib, "version");
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: private import win32.windef;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME: type weirdness
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	VS_FILE_INFO    =  16,
4e2933c620 2015-04-21        kinaba: 	VS_VERSION_INFO =   1,
4e2933c620 2015-04-21        kinaba: 	VS_USER_DEFINED = 100
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	VS_FFI_SIGNATURE     = 0xFEEF04BD,
4e2933c620 2015-04-21        kinaba: 	VS_FFI_STRUCVERSION  =    0x10000,
4e2933c620 2015-04-21        kinaba: 	VS_FFI_FILEFLAGSMASK =       0x3F
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	VS_FF_DEBUG        =  1,
4e2933c620 2015-04-21        kinaba: 	VS_FF_PRERELEASE   =  2,
4e2933c620 2015-04-21        kinaba: 	VS_FF_PATCHED      =  4,
4e2933c620 2015-04-21        kinaba: 	VS_FF_PRIVATEBUILD =  8,
4e2933c620 2015-04-21        kinaba: 	VS_FF_INFOINFERRED = 16,
4e2933c620 2015-04-21        kinaba: 	VS_FF_SPECIALBUILD = 32
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	VOS_UNKNOWN       =       0,
4e2933c620 2015-04-21        kinaba: 	VOS_DOS           = 0x10000,
4e2933c620 2015-04-21        kinaba: 	VOS_OS216         = 0x20000,
4e2933c620 2015-04-21        kinaba: 	VOS_OS232         = 0x30000,
4e2933c620 2015-04-21        kinaba: 	VOS_NT            = 0x40000,
4e2933c620 2015-04-21        kinaba: 	VOS__BASE         =       0,
4e2933c620 2015-04-21        kinaba: 	VOS__WINDOWS16    =       1,
4e2933c620 2015-04-21        kinaba: 	VOS__PM16         =       2,
4e2933c620 2015-04-21        kinaba: 	VOS__PM32         =       3,
4e2933c620 2015-04-21        kinaba: 	VOS__WINDOWS32    =       4,
4e2933c620 2015-04-21        kinaba: 	VOS_DOS_WINDOWS16 = 0x10001,
4e2933c620 2015-04-21        kinaba: 	VOS_DOS_WINDOWS32 = 0x10004,
4e2933c620 2015-04-21        kinaba: 	VOS_OS216_PM16    = 0x20002,
4e2933c620 2015-04-21        kinaba: 	VOS_OS232_PM32    = 0x30003,
4e2933c620 2015-04-21        kinaba: 	VOS_NT_WINDOWS32  = 0x40004
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	VFT_UNKNOWN    = 0,
4e2933c620 2015-04-21        kinaba: 	VFT_APP        = 1,
4e2933c620 2015-04-21        kinaba: 	VFT_DLL        = 2,
4e2933c620 2015-04-21        kinaba: 	VFT_DRV        = 3,
4e2933c620 2015-04-21        kinaba: 	VFT_FONT       = 4,
4e2933c620 2015-04-21        kinaba: 	VFT_VXD        = 5,
4e2933c620 2015-04-21        kinaba: 	VFT_STATIC_LIB = 7
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	VFT2_UNKNOWN         =  0,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_PRINTER     =  1,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_KEYBOARD    =  2,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_LANGUAGE    =  3,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_DISPLAY     =  4,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_MOUSE       =  5,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_NETWORK     =  6,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_SYSTEM      =  7,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_INSTALLABLE =  8,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_SOUND       =  9,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_COMM        = 10,
4e2933c620 2015-04-21        kinaba: 	VFT2_DRV_INPUTMETHOD = 11,
4e2933c620 2015-04-21        kinaba: 	VFT2_FONT_RASTER     =  1,
4e2933c620 2015-04-21        kinaba: 	VFT2_FONT_VECTOR     =  2,
4e2933c620 2015-04-21        kinaba: 	VFT2_FONT_TRUETYPE   =  3
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	VFFF_ISSHAREDFILE = 1
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	VFF_CURNEDEST    = 1,
4e2933c620 2015-04-21        kinaba: 	VFF_FILEINUSE    = 2,
4e2933c620 2015-04-21        kinaba: 	VFF_BUFFTOOSMALL = 4
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	VIFF_FORCEINSTALL  = 1,
4e2933c620 2015-04-21        kinaba: 	VIFF_DONTDELETEOLD
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	VIF_TEMPFILE         = 0x00001,
4e2933c620 2015-04-21        kinaba: 	VIF_MISMATCH         = 0x00002,
4e2933c620 2015-04-21        kinaba: 	VIF_SRCOLD           = 0x00004,
4e2933c620 2015-04-21        kinaba: 	VIF_DIFFLANG         = 0x00008,
4e2933c620 2015-04-21        kinaba: 	VIF_DIFFCODEPG       = 0x00010,
4e2933c620 2015-04-21        kinaba: 	VIF_DIFFTYPE         = 0x00020,
4e2933c620 2015-04-21        kinaba: 	VIF_WRITEPROT        = 0x00040,
4e2933c620 2015-04-21        kinaba: 	VIF_FILEINUSE        = 0x00080,
4e2933c620 2015-04-21        kinaba: 	VIF_OUTOFSPACE       = 0x00100,
4e2933c620 2015-04-21        kinaba: 	VIF_ACCESSVIOLATION  = 0x00200,
4e2933c620 2015-04-21        kinaba: 	VIF_SHARINGVIOLATION = 0x00400,
4e2933c620 2015-04-21        kinaba: 	VIF_CANNOTCREATE     = 0x00800,
4e2933c620 2015-04-21        kinaba: 	VIF_CANNOTDELETE     = 0x01000,
4e2933c620 2015-04-21        kinaba: 	VIF_CANNOTRENAME     = 0x02000,
4e2933c620 2015-04-21        kinaba: 	VIF_CANNOTDELETECUR  = 0x04000,
4e2933c620 2015-04-21        kinaba: 	VIF_OUTOFMEMORY      = 0x08000,
4e2933c620 2015-04-21        kinaba: 	VIF_CANNOTREADSRC    = 0x10000,
4e2933c620 2015-04-21        kinaba: 	VIF_CANNOTREADDST    = 0x20000,
4e2933c620 2015-04-21        kinaba: 	VIF_BUFFTOOSMALL     = 0x40000
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct VS_FIXEDFILEINFO {
4e2933c620 2015-04-21        kinaba: 	DWORD dwSignature;
4e2933c620 2015-04-21        kinaba: 	DWORD dwStrucVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileVersionMS;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileVersionLS;
4e2933c620 2015-04-21        kinaba: 	DWORD dwProductVersionMS;
4e2933c620 2015-04-21        kinaba: 	DWORD dwProductVersionLS;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileFlagsMask;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileFlags;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileOS;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileType;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileSubtype;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileDateMS;
4e2933c620 2015-04-21        kinaba: 	DWORD dwFileDateLS;
c2b7a98c21 2011-02-23        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: extern (Windows) {
4e2933c620 2015-04-21        kinaba: 	DWORD VerFindFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPSTR, PUINT, LPSTR,
4e2933c620 2015-04-21        kinaba: 	  PUINT);
4e2933c620 2015-04-21        kinaba: 	DWORD VerFindFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, PUINT, LPWSTR,
4e2933c620 2015-04-21        kinaba: 	  PUINT);
4e2933c620 2015-04-21        kinaba: 	DWORD VerInstallFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPSTR,
4e2933c620 2015-04-21        kinaba: 	  PUINT);
4e2933c620 2015-04-21        kinaba: 	DWORD VerInstallFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR,
4e2933c620 2015-04-21        kinaba: 	  LPWSTR, PUINT);
4e2933c620 2015-04-21        kinaba: 	DWORD GetFileVersionInfoSizeA(LPCSTR, PDWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD GetFileVersionInfoSizeW(LPCWSTR, PDWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL GetFileVersionInfoA(LPCSTR, DWORD, DWORD, PVOID);
4e2933c620 2015-04-21        kinaba: 	BOOL GetFileVersionInfoW(LPCWSTR, DWORD, DWORD, PVOID);
4e2933c620 2015-04-21        kinaba: 	DWORD VerLanguageNameA(DWORD, LPSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD VerLanguageNameW(DWORD, LPWSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL VerQueryValueA(LPCVOID, LPCSTR, LPVOID*, PUINT);
4e2933c620 2015-04-21        kinaba: 	BOOL VerQueryValueW(LPCVOID, LPCWSTR, LPVOID*, PUINT);
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias VerFindFileW VerFindFile;
4e2933c620 2015-04-21        kinaba: 	alias VerQueryValueW VerQueryValue;
4e2933c620 2015-04-21        kinaba: 	alias VerInstallFileW VerInstallFile;
4e2933c620 2015-04-21        kinaba: 	alias GetFileVersionInfoSizeW GetFileVersionInfoSize;
4e2933c620 2015-04-21        kinaba: 	alias GetFileVersionInfoW GetFileVersionInfo;
4e2933c620 2015-04-21        kinaba: 	alias VerLanguageNameW VerLanguageName;
4e2933c620 2015-04-21        kinaba: 	alias VerQueryValueW VerQueryValue;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias VerQueryValueA VerQueryValue;
4e2933c620 2015-04-21        kinaba: 	alias VerFindFileA VerFindFile;
4e2933c620 2015-04-21        kinaba: 	alias VerInstallFileA VerInstallFile;
4e2933c620 2015-04-21        kinaba: 	alias GetFileVersionInfoSizeA GetFileVersionInfoSize;
4e2933c620 2015-04-21        kinaba: 	alias GetFileVersionInfoA GetFileVersionInfo;
4e2933c620 2015-04-21        kinaba: 	alias VerLanguageNameA VerLanguageName;
4e2933c620 2015-04-21        kinaba: 	alias VerQueryValueA VerQueryValue;
4e2933c620 2015-04-21        kinaba: }