root/trunk/win32/winver.d

Revision 344, 4.8 kB (checked in by CyberShadow, 2 years ago)

winver fixes

Line 
1 /***********************************************************************\
2 *                                winver.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                           by Stewart Gordon                           *
8 *                                                                       *
9 *                       Placed into public domain                       *
10 \***********************************************************************/
11 module win32.winver;
12 pragma(lib, "version.lib");
13
14 private import win32.windef;
15
16 // FIXME: type weirdness
17 enum {
18     VS_FILE_INFO    =  16,
19     VS_VERSION_INFO =   1,
20     VS_USER_DEFINED = 100
21 }
22
23 enum {
24     VS_FFI_SIGNATURE     = 0xFEEF04BD,
25     VS_FFI_STRUCVERSION  =    0x10000,
26     VS_FFI_FILEFLAGSMASK =       0x3F
27 }
28
29 enum {
30     VS_FF_DEBUG        =  1,
31     VS_FF_PRERELEASE   =  2,
32     VS_FF_PATCHED      =  4,
33     VS_FF_PRIVATEBUILD =  8,
34     VS_FF_INFOINFERRED = 16,
35     VS_FF_SPECIALBUILD = 32
36 }
37
38 enum {
39     VOS_UNKNOWN       =       0,
40     VOS_DOS           = 0x10000,
41     VOS_OS216         = 0x20000,
42     VOS_OS232         = 0x30000,
43     VOS_NT            = 0x40000,
44     VOS__BASE         =       0,
45     VOS__WINDOWS16    =       1,
46     VOS__PM16         =       2,
47     VOS__PM32         =       3,
48     VOS__WINDOWS32    =       4,
49     VOS_DOS_WINDOWS16 = 0x10001,
50     VOS_DOS_WINDOWS32 = 0x10004,
51     VOS_OS216_PM16    = 0x20002,
52     VOS_OS232_PM32    = 0x30003,
53     VOS_NT_WINDOWS32  = 0x40004
54 }
55
56 enum {
57     VFT_UNKNOWN    = 0,
58     VFT_APP        = 1,
59     VFT_DLL        = 2,
60     VFT_DRV        = 3,
61     VFT_FONT       = 4,
62     VFT_VXD        = 5,
63     VFT_STATIC_LIB = 7
64 }
65
66 enum {
67     VFT2_UNKNOWN         =  0,
68     VFT2_DRV_PRINTER     =  1,
69     VFT2_DRV_KEYBOARD    =  2,
70     VFT2_DRV_LANGUAGE    =  3,
71     VFT2_DRV_DISPLAY     =  4,
72     VFT2_DRV_MOUSE       =  5,
73     VFT2_DRV_NETWORK     =  6,
74     VFT2_DRV_SYSTEM      =  7,
75     VFT2_DRV_INSTALLABLE =  8,
76     VFT2_DRV_SOUND       =  9,
77     VFT2_DRV_COMM        = 10,
78     VFT2_DRV_INPUTMETHOD = 11,
79     VFT2_FONT_RASTER     =  1,
80     VFT2_FONT_VECTOR     =  2,
81     VFT2_FONT_TRUETYPE   =  3
82 }
83
84 enum : DWORD {
85     VFFF_ISSHAREDFILE = 1
86 }
87
88 enum : DWORD {
89     VFF_CURNEDEST    = 1,
90     VFF_FILEINUSE    = 2,
91     VFF_BUFFTOOSMALL = 4
92 }
93
94 enum : DWORD {
95     VIFF_FORCEINSTALL  = 1,
96     VIFF_DONTDELETEOLD
97 }
98
99 enum {
100     VIF_TEMPFILE         = 0x00001,
101     VIF_MISMATCH         = 0x00002,
102     VIF_SRCOLD           = 0x00004,
103     VIF_DIFFLANG         = 0x00008,
104     VIF_DIFFCODEPG       = 0x00010,
105     VIF_DIFFTYPE         = 0x00020,
106     VIF_WRITEPROT        = 0x00040,
107     VIF_FILEINUSE        = 0x00080,
108     VIF_OUTOFSPACE       = 0x00100,
109     VIF_ACCESSVIOLATION  = 0x00200,
110     VIF_SHARINGVIOLATION = 0x00400,
111     VIF_CANNOTCREATE     = 0x00800,
112     VIF_CANNOTDELETE     = 0x01000,
113     VIF_CANNOTRENAME     = 0x02000,
114     VIF_CANNOTDELETECUR  = 0x04000,
115     VIF_OUTOFMEMORY      = 0x08000,
116     VIF_CANNOTREADSRC    = 0x10000,
117     VIF_CANNOTREADDST    = 0x20000,
118     VIF_BUFFTOOSMALL     = 0x40000
119 }
120
121 struct VS_FIXEDFILEINFO {
122     DWORD dwSignature;
123     DWORD dwStrucVersion;
124     DWORD dwFileVersionMS;
125     DWORD dwFileVersionLS;
126     DWORD dwProductVersionMS;
127     DWORD dwProductVersionLS;
128     DWORD dwFileFlagsMask;
129     DWORD dwFileFlags;
130     DWORD dwFileOS;
131     DWORD dwFileType;
132     DWORD dwFileSubtype;
133     DWORD dwFileDateMS;
134     DWORD dwFileDateLS;
135 }
136
137 extern (Windows) {
138     DWORD VerFindFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPSTR, PUINT, LPSTR,
139       PUINT);
140     DWORD VerFindFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, PUINT, LPWSTR,
141       PUINT);
142     DWORD VerInstallFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPSTR,
143       PUINT);
144     DWORD VerInstallFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR,
145       LPWSTR, PUINT);
146     DWORD GetFileVersionInfoSizeA(LPCSTR, PDWORD);
147     DWORD GetFileVersionInfoSizeW(LPCWSTR, PDWORD);
148     BOOL GetFileVersionInfoA(LPCSTR, DWORD, DWORD, PVOID);
149     BOOL GetFileVersionInfoW(LPCWSTR, DWORD, DWORD, PVOID);
150     DWORD VerLanguageNameA(DWORD, LPSTR, DWORD);
151     DWORD VerLanguageNameW(DWORD, LPWSTR, DWORD);
152     BOOL VerQueryValueA(LPCVOID, LPCSTR, LPVOID*, PUINT);
153     BOOL VerQueryValueW(LPCVOID, LPCWSTR, LPVOID*, PUINT);
154 }
155
156 version (Unicode) {
157     alias VerFindFileW VerFindFile;
158     alias VerQueryValueW VerQueryValue;
159     alias VerInstallFileW VerInstallFile;
160     alias GetFileVersionInfoSizeW GetFileVersionInfoSize;
161     alias GetFileVersionInfoW GetFileVersionInfo;
162     alias VerLanguageNameW VerLanguageName;
163     alias VerQueryValueW VerQueryValue;
164 } else {
165     alias VerQueryValueA VerQueryValue;
166     alias VerFindFileA VerFindFile;
167     alias VerInstallFileA VerInstallFile;
168     alias GetFileVersionInfoSizeA GetFileVersionInfoSize;
169     alias GetFileVersionInfoA GetFileVersionInfo;
170     alias VerLanguageNameA VerLanguageName;
171     alias VerQueryValueA VerQueryValue;
172 }
Note: See TracBrowser for help on using the browser.