1 /* Definitions for the VERsion infolibrary (VER.DLL)
3 * Copyright 1996 Marcus Meissner
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 #ifndef __WINE_WINVER_H
21 #define __WINE_WINVER_H
27 #endif /* defined(__cplusplus) */
29 /* resource ids for different version infos */
30 #define VS_FILE_INFO 16
31 #define VS_VERSION_INFO 1
32 #define VS_USER_DEFINED 100
34 #define VS_FFI_SIGNATURE 0xfeef04bdL /* FileInfo Magic */
35 #define VS_FFI_STRUCVERSION 0x00010000L /* struc version 1.0 */
36 #define VS_FFI_FILEFLAGSMASK 0x0000003fL /* valid flags */
38 /* VS_VERSION.dwFileFlags */
39 #define VS_FF_DEBUG 0x01L
40 #define VS_FF_PRERELEASE 0x02L
41 #define VS_FF_PATCHED 0x04L
42 #define VS_FF_PRIVATEBUILD 0x08L
43 #define VS_FF_INFOINFERRED 0x10L
44 #define VS_FF_SPECIALBUILD 0x20L
46 /* VS_VERSION.dwFileOS */
48 /* major os version */
49 #define VOS_UNKNOWN 0x00000000L
50 #define VOS_DOS 0x00010000L
51 #define VOS_OS216 0x00020000L
52 #define VOS_OS232 0x00030000L
53 #define VOS_NT 0x00040000L
55 /* minor os version */
56 #define VOS__BASE 0x00000000L
57 #define VOS__WINDOWS16 0x00000001L
58 #define VOS__PM16 0x00000002L
59 #define VOS__PM32 0x00000003L
60 #define VOS__WINDOWS32 0x00000004L
62 /* possible versions */
63 #define VOS_DOS_WINDOWS16 (VOS_DOS|VOS__WINDOWS16)
64 #define VOS_DOS_WINDOWS32 (VOS_DOS|VOS__WINDOWS32)
65 #define VOS_OS216_PM16 (VOS_OS216|VOS__PM16)
66 #define VOS_OS232_PM32 (VOS_OS232|VOS__PM32)
67 #define VOS_NT_WINDOWS32 (VOS_NT|VOS__WINDOWS32)
69 /* VS_VERSION.dwFileType */
70 #define VFT_UNKNOWN 0x00000000L
71 #define VFT_APP 0x00000001L
72 #define VFT_DLL 0x00000002L
73 #define VFT_DRV 0x00000003L
74 #define VFT_FONT 0x00000004L
75 #define VFT_VXD 0x00000005L
76 /* ??one type missing?? 0x00000006L -Marcus */
77 #define VFT_STATIC_LIB 0x00000007L
79 /* VS_VERSION.dwFileSubtype for VFT_DRV */
80 #define VFT2_UNKNOWN 0x00000000L
81 #define VFT2_DRV_PRINTER 0x00000001L
82 #define VFT2_DRV_KEYBOARD 0x00000002L
83 #define VFT2_DRV_LANGUAGE 0x00000003L
84 #define VFT2_DRV_DISPLAY 0x00000004L
85 #define VFT2_DRV_MOUSE 0x00000005L
86 #define VFT2_DRV_NETWORK 0x00000006L
87 #define VFT2_DRV_SYSTEM 0x00000007L
88 #define VFT2_DRV_INSTALLABLE 0x00000008L
89 #define VFT2_DRV_SOUND 0x00000009L
90 #define VFT2_DRV_COMM 0x0000000aL
91 #define VFT2_DRV_INPUTMETHOD 0x0000000bL
93 /* VS_VERSION.dwFileSubtype for VFT_FONT */
94 #define VFT2_FONT_RASTER 0x00000001L
95 #define VFT2_FONT_VECTOR 0x00000002L
96 #define VFT2_FONT_TRUETYPE 0x00000003L
98 /* VerFindFile Flags */
100 #define VFFF_ISSHAREDFILE 0x0001
102 /* output (returned) */
103 #define VFF_CURNEDEST 0x0001
104 #define VFF_FILEINUSE 0x0002
105 #define VFF_BUFFTOOSMALL 0x0004
107 /* VerInstallFile Flags */
109 #define VIFF_FORCEINSTALL 0x0001
110 #define VIFF_DONTDELETEOLD 0x0002
112 /* output (return) */
113 #define VIF_TEMPFILE 0x00000001L
114 #define VIF_MISMATCH 0x00000002L
115 #define VIF_SRCOLD 0x00000004L
116 #define VIF_DIFFLANG 0x00000008L
117 #define VIF_DIFFCODEPG 0x00000010L
118 #define VIF_DIFFTYPE 0x00000020L
119 #define VIF_WRITEPROT 0x00000040L
120 #define VIF_FILEINUSE 0x00000080L
121 #define VIF_OUTOFSPACE 0x00000100L
122 #define VIF_ACCESSVIOLATION 0x00000200L
123 #define VIF_SHARINGVIOLATION 0x00000400L
124 #define VIF_CANNOTCREATE 0x00000800L
125 #define VIF_CANNOTDELETE 0x00001000L
126 #define VIF_CANNOTRENAME 0x00002000L
127 #define VIF_CANNOTDELETECUR 0x00004000L
128 #define VIF_OUTOFMEMORY 0x00008000L
129 #define VIF_CANNOTREADSRC 0x00010000L
130 #define VIF_CANNOTREADDST 0x00020000L
131 #define VIF_BUFFTOOSMALL 0x00040000L
133 typedef struct tagVS_FIXEDFILEINFO
{
135 DWORD dwStrucVersion
;
136 DWORD dwFileVersionMS
;
137 DWORD dwFileVersionLS
;
138 DWORD dwProductVersionMS
;
139 DWORD dwProductVersionLS
;
140 DWORD dwFileFlagsMask
;
152 /* function prototypes */
154 DWORD WINAPI
VerFindFileA(UINT
,LPCSTR
,LPCSTR
,LPCSTR
,LPSTR
,UINT
*,LPSTR
,UINT
*);
155 DWORD WINAPI
VerFindFileW(UINT
,LPCWSTR
,LPCWSTR
,LPCWSTR
,LPWSTR
,UINT
*,LPWSTR
,UINT
*);
156 #define VerFindFile WINELIB_NAME_AW(VerFindFile)
157 DWORD WINAPI
VerInstallFileA(UINT
,LPCSTR
,LPCSTR
,LPCSTR
,LPCSTR
,LPCSTR
,LPSTR
,UINT
*);
158 DWORD WINAPI
VerInstallFileW(UINT
,LPCWSTR
,LPCWSTR
,LPCWSTR
,LPCWSTR
,LPCWSTR
,LPWSTR
,UINT
*);
159 #define VerInstallFile WINELIB_NAME_AW(VerInstallFile)
160 DWORD WINAPI
VerLanguageNameA(UINT
,LPSTR
,UINT
);
161 DWORD WINAPI
VerLanguageNameW(UINT
,LPWSTR
,UINT
);
162 #define VerLanguageName WINELIB_NAME_AW(VerLanguageName)
163 DWORD WINAPI
VerQueryValueA(LPVOID
,LPCSTR
,LPVOID
*,UINT
*);
164 DWORD WINAPI
VerQueryValueW(LPVOID
,LPCWSTR
,LPVOID
*,UINT
*);
165 #define VerQueryValue WINELIB_NAME_AW(VerQueryValue)
166 DWORD WINAPI
GetFileVersionInfoSizeA(LPCSTR
,LPDWORD
);
167 DWORD WINAPI
GetFileVersionInfoSizeW(LPCWSTR
,LPDWORD
);
168 #define GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize)
169 BOOL WINAPI
GetFileVersionInfoA(LPCSTR
,DWORD
,DWORD
,LPVOID
);
170 BOOL WINAPI
GetFileVersionInfoW(LPCWSTR
,DWORD
,DWORD
,LPVOID
);
171 #define GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo)
173 /* 20 GETFILEVERSIONINFORAW */
175 #endif /* RC_INVOKED */
179 #endif /* defined(__cplusplus) */
181 #endif /* __WINE_WINVER_H */