Release 960611
[wine/multimedia.git] / include / ver.h
blob8672d865d32acf75edbe4b5daca85b8bed6169b6
1 /* Definitions for the VERsion infolibrary (VER.DLL)
2 *
3 * Copyright 1996 Marcus Meissner
4 */
5 #ifndef __WINE_VER_H
6 #define __WINE_VER_H
8 #include "windows.h"
10 /* resource ids for different version infos */
11 #define VS_FILE_INFO MAKEINTRESOURCE(16)
12 #define VS_VERSION_INFO MAKEINTRESOURCE(1)
13 #define VS_USER_INFO MAKEINTRESOURCE(100)
15 #define VS_FFI_SIGNATURE 0xfeef04bdL /* FileInfo Magic */
16 #define VS_FFI_STRUCVERSION 0x00010000L /* struc version 1.0 */
17 #define VS_FFI_FILEFLAGSMASK 0x0000003fL /* valid flags */
19 /* VS_VERSION.dwFileFlags */
20 #define VS_FF_DEBUG 0x01L
21 #define VS_FF_PRERELEASE 0x02L
22 #define VS_FF_PATCHED 0x04L
23 #define VS_FF_PRIVATEBUILD 0x08L
24 #define VS_FF_INFOINFERRED 0x10L
25 #define VS_FF_SPECIALBUILD 0x20L
27 /* VS_VERSION.dwFileOS */
29 /* major os version */
30 #define VOS_UNKNOWN 0x00000000L
31 #define VOS_DOS 0x00010000L
32 #define VOS_OS216 0x00020000L
33 #define VOS_OS232 0x00030000L
34 #define VOS_NT 0x00040000L
36 /* minor os version */
37 #define VOS__BASE 0x00000000L
38 #define VOS__WINDOWS16 0x00000001L
39 #define VOS__PM16 0x00000002L
40 #define VOS__PM32 0x00000003L
41 #define VOS__WINDOWS32 0x00000004L
43 /* possible versions */
44 #define VOS_DOS_WINDOWS16 (VOS_DOS|VOS__WINDOWS16)
45 #define VOS_DOS_WINDOWS32 (VOS_DOS|VOS__WINDOWS32)
46 #define VOS_OS216_PM16 (VOS_OS216|VOS__PM16)
47 #define VOS_OS232_PM32 (VOS_OS232|VOS__PM32)
48 #define VOS_NT_WINDOWS32 (VOS_NT|VOS__WINDOWS32)
50 /* VS_VERSION.dwFileType */
51 #define VFT_UNKNOWN 0x00000000L
52 #define VFT_APP 0x00000001L
53 #define VFT_DLL 0x00000002L
54 #define VFT_DRV 0x00000003L
55 #define VFT_FONT 0x00000004L
56 #define VFT_VXD 0x00000005L
57 /* ??one type missing?? 0x00000006L -Marcus */
58 #define VFT_STATIC_LIB 0x00000007L
60 /* VS_VERSION.dwFileSubtype for VFT_DRV */
61 #define VFT2_UNKNOWN 0x00000000L
62 #define VFT2_DRV_PRINTER 0x00000001L
63 #define VFT2_DRV_KEYBOARD 0x00000002L
64 #define VFT2_DRV_LANGUAGE 0x00000003L
65 #define VFT2_DRV_DISPLAY 0x00000004L
66 #define VFT2_DRV_MOUSE 0x00000005L
67 #define VFT2_DRV_NETWORK 0x00000006L
68 #define VFT2_DRV_SYSTEM 0x00000007L
69 #define VFT2_DRV_INSTALLABLE 0x00000008L
70 #define VFT2_DRV_SOUND 0x00000009L
71 #define VFT2_DRV_COMM 0x0000000aL
72 #define VFT2_DRV_INPUTMETHOD 0x0000000bL
74 /* VS_VERSION.dwFileSubtype for VFT_FONT */
75 #define VFT2_FONT_RASTER 0x00000001L
76 #define VFT2_FONT_VECTOR 0x00000002L
77 #define VFT2_FONT_TRUETYPE 0x00000003L
79 /* VerFindFile Flags */
80 /* input */
81 #define VFFF_ISSHAREDFILE 0x0001
83 /* output (returned) */
84 #define VFF_CURNEDEST 0x0001
85 #define VFF_FILEINUSE 0x0002
86 #define VFF_BUFFTOSMALL 0x0003
88 /* VerInstallFile Flags */
89 /* input */
90 #define VIFF_FORCEINSTALL 0x0001
91 #define VIFF_DONTDELETEOLD 0x0002
93 /* output (return) */
94 #define VIF_TEMPFILE 0x00000001L
95 #define VIF_MISMATCH 0x00000002L
96 #define VIF_SRCOLD 0x00000004L
97 #define VIF_DIFFLANG 0x00000008L
98 #define VIF_DIFFCODEPG 0x00000010L
99 #define VIF_DIFFTYPE 0x00000020L
100 #define VIF_WRITEPROT 0x00000040L
101 #define VIF_FILEINUSE 0x00000080L
102 #define VIF_OUTOFSPACE 0x00000100L
103 #define VIF_ACCESSVIOLATION 0x00000200L
104 #define VIF_SHARINGVIOLATION 0x00000400L
105 #define VIF_CANNOTCREATE 0x00000800L
106 #define VIF_CANNOTDELETE 0x00001000L
107 #define VIF_CANNOTRENAME 0x00002000L
108 #define VIF_CANNOTDELETECUR 0x00004000L
109 #define VIF_OUTOFMEMORY 0x00008000L
110 #define VIF_CANNOTREADSRC 0x00010000L
111 #define VIF_CANNOTREADDST 0x00020000L
112 #define VIF_BUFTOSMALL 0x00040000L
114 typedef struct tagVS_FIXEDFILEINFO {
115 DWORD dwSignature;
116 DWORD dwStrucVersion;
117 DWORD dwFileVersionMS;
118 DWORD dwFileVersionLS;
119 DWORD dwProductVersionMS;
120 DWORD dwProductVersionLS;
121 DWORD dwFileFlagsMask;
122 DWORD dwFileFlags;
123 DWORD dwFileOS;
124 DWORD dwFileType;
125 DWORD dwFileSubtype;
126 DWORD dwFileDateMS;
127 DWORD dwFileDateLS;
128 } VS_FIXEDFILEINFO;
130 /* following two aren't in version.dll */
131 DWORD
132 GetFileResourceSize(LPCSTR filename,SEGPTR restype,SEGPTR resid,LPDWORD off);
134 DWORD
135 GetFileResource(LPCSTR filename,SEGPTR restype,SEGPTR resid,
136 DWORD off,DWORD reslen,LPVOID data
139 DWORD GetFileVersionInfoSize16(LPCSTR filename,LPDWORD handle);
140 DWORD GetFileVersionInfoSize32A(LPCSTR filename,LPDWORD handle);
141 DWORD GetFileVersionInfoSize32W(LPCWSTR filename,LPDWORD handle);
142 #define GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize)
144 DWORD GetFileVersionInfo16(LPCSTR filename,DWORD handle,DWORD datasize,LPVOID data);
145 DWORD GetFileVersionInfo32A(LPCSTR filename,DWORD handle,DWORD datasize,LPVOID data);
146 DWORD GetFileVersionInfo32W(LPCWSTR filename,DWORD handle,DWORD datasize,LPVOID data);
147 #define GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo)
149 DWORD
150 VerFindFile16(
151 UINT16 flags,LPCSTR filename,LPCSTR windir,LPCSTR appdir,
152 LPSTR curdir,UINT16 *curdirlen,LPSTR destdir,UINT16 *destdirlen
154 DWORD
155 VerFindFile32A(
156 UINT32 flags,LPCSTR filename,LPCSTR windir,LPCSTR appdir,
157 LPSTR curdir,UINT32 *curdirlen,LPSTR destdir,UINT32 *destdirlen
159 DWORD
160 VerFindFile32W(
161 UINT32 flags,LPCWSTR filename,LPCWSTR windir,LPCWSTR appdir,
162 LPWSTR curdir,UINT32 *curdirlen,LPWSTR destdir,UINT32 *destdirlen
164 #define VerFindFile WINELIB_NAME_AW(VerFindFile)
166 DWORD
167 VerInstallFile16(
168 UINT16 flags,LPCSTR srcfilename,LPCSTR destfilename,LPCSTR srcdir,
169 LPCSTR destdir,LPSTR tmpfile,UINT16 *tmpfilelen
171 DWORD
172 VerInstallFile32A(
173 UINT32 flags,LPCSTR srcfilename,LPCSTR destfilename,LPCSTR srcdir,
174 LPCSTR destdir,LPSTR tmpfile,UINT32 *tmpfilelen
176 DWORD
177 VerInstallFile32W(
178 UINT32 flags,LPCWSTR srcfilename,LPCWSTR destfilename,LPCWSTR srcdir,
179 LPCWSTR destdir,LPWSTR tmpfile,UINT32 *tmpfilelen
181 #define VerInstallFile WINELIB_NAME_AW(VerInstallFile)
183 DWORD VerLanguageName16(UINT16 lang,LPSTR langname,UINT16 langnamelen);
184 DWORD VerLanguageName32A(UINT32 lang,LPSTR langname,UINT32 langnamelen);
185 DWORD VerLanguageName32W(UINT32 lang,LPWSTR langname,UINT32 langnamelen);
186 #define VerLanguageName WINELIB_NAME_AW(VerLanguageName)
188 DWORD VerQueryValue16(SEGPTR block,LPCSTR subblock,SEGPTR *buffer,UINT16 *buflen);
189 DWORD VerQueryValue32A(LPVOID block,LPCSTR subblock,LPVOID *buffer,UINT32 *buflen);
190 DWORD VerQueryValue32W(LPVOID block,LPCWSTR subblock,LPVOID *buffer,UINT32 *buflen);
191 #define VerQueryValue WINELIB_NAME_AW(VerQueryValue)
193 /* 20 GETFILEVERSIONINFORAW */
195 #endif /* __WINE_VER_H */