blob: e0cca0188ac2283532a4d1879fd6ae6b4cdcdf02 [file] [log] [blame]
Paul Quinnf981c6c1999-05-29 11:15:39 +00001/* Definitions for the VERsion infolibrary (VER.DLL)
2 *
3 * Copyright 1996 Marcus Meissner
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00004 *
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.
9 *
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.
14 *
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
Paul Quinnf981c6c1999-05-29 11:15:39 +000018 */
19
Michael Veksler17822f41999-02-09 15:46:25 +000020#ifndef __WINE_WINVER_H
21#define __WINE_WINVER_H
22
Jim Aston2e1cafa1999-03-14 16:35:05 +000023#include "windef.h"
Marcus Meissner317af321999-02-17 13:51:06 +000024
Patrik Stridvall14da7b11999-06-12 10:53:06 +000025#ifdef __cplusplus
26extern "C" {
27#endif /* defined(__cplusplus) */
28
Paul Quinnf981c6c1999-05-29 11:15:39 +000029/* resource ids for different version infos */
Paul Quinnf981c6c1999-05-29 11:15:39 +000030#define VS_FILE_INFO 16
31#define VS_VERSION_INFO 1
Francois Gouget3e88da12000-09-29 00:22:09 +000032#define VS_USER_DEFINED 100
Paul Quinnf981c6c1999-05-29 11:15:39 +000033
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 */
37
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
45
46/* VS_VERSION.dwFileOS */
47
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
54
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
61
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)
68
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
78
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
92
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
97
98/* VerFindFile Flags */
99 /* input */
100#define VFFF_ISSHAREDFILE 0x0001
101
102 /* output (returned) */
103#define VFF_CURNEDEST 0x0001
104#define VFF_FILEINUSE 0x0002
105#define VFF_BUFFTOOSMALL 0x0004
106
107/* VerInstallFile Flags */
108 /* input */
109#define VIFF_FORCEINSTALL 0x0001
110#define VIFF_DONTDELETEOLD 0x0002
111
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
132
133typedef struct tagVS_FIXEDFILEINFO {
134 DWORD dwSignature;
135 DWORD dwStrucVersion;
136 DWORD dwFileVersionMS;
137 DWORD dwFileVersionLS;
138 DWORD dwProductVersionMS;
139 DWORD dwProductVersionLS;
140 DWORD dwFileFlagsMask;
141 DWORD dwFileFlags;
142 DWORD dwFileOS;
143 DWORD dwFileType;
144 DWORD dwFileSubtype;
145 DWORD dwFileDateMS;
146 DWORD dwFileDateLS;
147} VS_FIXEDFILEINFO;
148
149
150#ifndef RC_INVOKED
151
152/* function prototypes */
153
Alexandre Julliarda3960291999-02-26 11:11:13 +0000154DWORD WINAPI VerFindFileA(UINT,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT*,LPSTR,UINT*);
155DWORD WINAPI VerFindFileW(UINT,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT*,LPWSTR,UINT*);
Michael Veksler17822f41999-02-09 15:46:25 +0000156#define VerFindFile WINELIB_NAME_AW(VerFindFile)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000157DWORD WINAPI VerInstallFileA(UINT,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT*);
158DWORD WINAPI VerInstallFileW(UINT,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT*);
Michael Veksler17822f41999-02-09 15:46:25 +0000159#define VerInstallFile WINELIB_NAME_AW(VerInstallFile)
Ulrich Weigand3467dab1999-09-19 12:15:58 +0000160DWORD WINAPI VerLanguageNameA(UINT,LPSTR,UINT);
161DWORD WINAPI VerLanguageNameW(UINT,LPWSTR,UINT);
162#define VerLanguageName WINELIB_NAME_AW(VerLanguageName)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000163DWORD WINAPI VerQueryValueA(LPVOID,LPCSTR,LPVOID*,UINT*);
164DWORD WINAPI VerQueryValueW(LPVOID,LPCWSTR,LPVOID*,UINT*);
Michael Veksler17822f41999-02-09 15:46:25 +0000165#define VerQueryValue WINELIB_NAME_AW(VerQueryValue)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000166DWORD WINAPI GetFileVersionInfoSizeA(LPCSTR,LPDWORD);
167DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR,LPDWORD);
Michael Veksler17822f41999-02-09 15:46:25 +0000168#define GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize)
Dmitry Timoshkov07b6e6e2001-03-16 16:42:20 +0000169BOOL WINAPI GetFileVersionInfoA(LPCSTR,DWORD,DWORD,LPVOID);
170BOOL WINAPI GetFileVersionInfoW(LPCWSTR,DWORD,DWORD,LPVOID);
Michael Veksler17822f41999-02-09 15:46:25 +0000171#define GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo)
172
Paul Quinnf981c6c1999-05-29 11:15:39 +0000173/* 20 GETFILEVERSIONINFORAW */
174
Paul Quinnf981c6c1999-05-29 11:15:39 +0000175#endif /* RC_INVOKED */
176
Patrik Stridvall14da7b11999-06-12 10:53:06 +0000177#ifdef __cplusplus
178} /* extern "C" */
179#endif /* defined(__cplusplus) */
180
Michael Veksler17822f41999-02-09 15:46:25 +0000181#endif /* __WINE_WINVER_H */