oleaut32: Introduce a new helper function, TLB_FreeCustData, for freeing custom data.
[wine] / include / winver.h
1 /* Definitions for the VERsion infolibrary (VER.DLL)
2  *
3  * Copyright 1996 Marcus Meissner
4  *
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  */
19
20 #ifndef __WINE_WINVER_H
21 #define __WINE_WINVER_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif /* defined(__cplusplus) */
26
27 /* resource ids for different version infos */
28 #define VS_FILE_INFO            16
29 #define VS_VERSION_INFO         1
30 #define VS_USER_DEFINED         100
31
32 #define VS_FFI_SIGNATURE        0xfeef04bdL     /* FileInfo Magic */
33 #define VS_FFI_STRUCVERSION     0x00010000L     /* struc version 1.0 */
34 #define VS_FFI_FILEFLAGSMASK    0x0000003fL     /* valid flags */
35
36 /* VS_VERSION.dwFileFlags */
37 #define VS_FF_DEBUG             0x01L
38 #define VS_FF_PRERELEASE        0x02L
39 #define VS_FF_PATCHED           0x04L
40 #define VS_FF_PRIVATEBUILD      0x08L
41 #define VS_FF_INFOINFERRED      0x10L
42 #define VS_FF_SPECIALBUILD      0x20L
43
44 /* VS_VERSION.dwFileOS */
45
46 /* major os version */
47 #define VOS_UNKNOWN             0x00000000L
48 #define VOS_DOS                 0x00010000L
49 #define VOS_OS216               0x00020000L
50 #define VOS_OS232               0x00030000L
51 #define VOS_NT                  0x00040000L
52
53 /* minor os version */
54 #define VOS__BASE               0x00000000L
55 #define VOS__WINDOWS16          0x00000001L
56 #define VOS__PM16               0x00000002L
57 #define VOS__PM32               0x00000003L
58 #define VOS__WINDOWS32          0x00000004L
59
60 /* possible versions */
61 #define VOS_DOS_WINDOWS16       (VOS_DOS|VOS__WINDOWS16)
62 #define VOS_DOS_WINDOWS32       (VOS_DOS|VOS__WINDOWS32)
63 #define VOS_OS216_PM16          (VOS_OS216|VOS__PM16)
64 #define VOS_OS232_PM32          (VOS_OS232|VOS__PM32)
65 #define VOS_NT_WINDOWS32        (VOS_NT|VOS__WINDOWS32)
66
67 /* VS_VERSION.dwFileType */
68 #define VFT_UNKNOWN             0x00000000L
69 #define VFT_APP                 0x00000001L
70 #define VFT_DLL                 0x00000002L
71 #define VFT_DRV                 0x00000003L
72 #define VFT_FONT                0x00000004L
73 #define VFT_VXD                 0x00000005L
74 /* ??one type missing??         0x00000006L -Marcus */
75 #define VFT_STATIC_LIB          0x00000007L
76
77 /* VS_VERSION.dwFileSubtype for VFT_DRV */
78 #define VFT2_UNKNOWN            0x00000000L
79 #define VFT2_DRV_PRINTER        0x00000001L
80 #define VFT2_DRV_KEYBOARD       0x00000002L
81 #define VFT2_DRV_LANGUAGE       0x00000003L
82 #define VFT2_DRV_DISPLAY        0x00000004L
83 #define VFT2_DRV_MOUSE          0x00000005L
84 #define VFT2_DRV_NETWORK        0x00000006L
85 #define VFT2_DRV_SYSTEM         0x00000007L
86 #define VFT2_DRV_INSTALLABLE    0x00000008L
87 #define VFT2_DRV_SOUND          0x00000009L
88 #define VFT2_DRV_COMM           0x0000000aL
89 #define VFT2_DRV_INPUTMETHOD    0x0000000bL
90 #define VFT2_DRV_VERSIONED_PRINTER      0x0000000cL
91
92 /* VS_VERSION.dwFileSubtype for VFT_FONT */
93 #define VFT2_FONT_RASTER        0x00000001L
94 #define VFT2_FONT_VECTOR        0x00000002L
95 #define VFT2_FONT_TRUETYPE      0x00000003L
96
97 /* VerFindFile Flags */
98         /* input */
99 #define VFFF_ISSHAREDFILE       0x0001
100
101         /* output (returned) */
102 #define VFF_CURNEDEST           0x0001
103 #define VFF_FILEINUSE           0x0002
104 #define VFF_BUFFTOOSMALL        0x0004
105
106 /* VerInstallFile Flags */
107         /* input */
108 #define VIFF_FORCEINSTALL       0x0001
109 #define VIFF_DONTDELETEOLD      0x0002
110
111         /* output (return) */
112 #define VIF_TEMPFILE            0x00000001L
113 #define VIF_MISMATCH            0x00000002L
114 #define VIF_SRCOLD              0x00000004L
115 #define VIF_DIFFLANG            0x00000008L
116 #define VIF_DIFFCODEPG          0x00000010L
117 #define VIF_DIFFTYPE            0x00000020L
118 #define VIF_WRITEPROT           0x00000040L
119 #define VIF_FILEINUSE           0x00000080L
120 #define VIF_OUTOFSPACE          0x00000100L
121 #define VIF_ACCESSVIOLATION     0x00000200L
122 #define VIF_SHARINGVIOLATION    0x00000400L
123 #define VIF_CANNOTCREATE        0x00000800L
124 #define VIF_CANNOTDELETE        0x00001000L
125 #define VIF_CANNOTRENAME        0x00002000L
126 #define VIF_CANNOTDELETECUR     0x00004000L
127 #define VIF_OUTOFMEMORY         0x00008000L
128 #define VIF_CANNOTREADSRC       0x00010000L
129 #define VIF_CANNOTREADDST       0x00020000L
130 #define VIF_BUFFTOOSMALL        0x00040000L
131
132 typedef struct tagVS_FIXEDFILEINFO {
133         DWORD   dwSignature;
134         DWORD   dwStrucVersion;
135         DWORD   dwFileVersionMS;
136         DWORD   dwFileVersionLS;
137         DWORD   dwProductVersionMS;
138         DWORD   dwProductVersionLS;
139         DWORD   dwFileFlagsMask;
140         DWORD   dwFileFlags;
141         DWORD   dwFileOS;
142         DWORD   dwFileType;
143         DWORD   dwFileSubtype;
144         DWORD   dwFileDateMS;
145         DWORD   dwFileDateLS;
146 } VS_FIXEDFILEINFO;
147
148
149 #ifndef RC_INVOKED
150
151 /* function prototypes */
152
153 DWORD       WINAPI VerFindFileA(DWORD,LPCSTR,LPCSTR,LPCSTR,LPSTR,PUINT,LPSTR,PUINT);
154 DWORD       WINAPI VerFindFileW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,PUINT,LPWSTR,PUINT);
155 #define     VerFindFile WINELIB_NAME_AW(VerFindFile)
156 DWORD       WINAPI VerInstallFileA(DWORD,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,PUINT);
157 DWORD       WINAPI VerInstallFileW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,PUINT);
158 #define     VerInstallFile WINELIB_NAME_AW(VerInstallFile)
159 DWORD       WINAPI VerLanguageNameA(DWORD,LPSTR,DWORD);
160 DWORD       WINAPI VerLanguageNameW(DWORD,LPWSTR,DWORD);
161 #define     VerLanguageName WINELIB_NAME_AW(VerLanguageName)
162 BOOL        WINAPI VerQueryValueA(LPCVOID,LPCSTR,LPVOID*,PUINT);
163 BOOL        WINAPI VerQueryValueW(LPCVOID,LPCWSTR,LPVOID*,PUINT);
164 #define     VerQueryValue WINELIB_NAME_AW(VerQueryValue)
165 DWORD       WINAPI GetFileVersionInfoSizeA(LPCSTR,LPDWORD);
166 DWORD       WINAPI GetFileVersionInfoSizeW(LPCWSTR,LPDWORD);
167 #define     GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize)
168 BOOL        WINAPI GetFileVersionInfoA(LPCSTR,DWORD,DWORD,LPVOID);
169 BOOL        WINAPI GetFileVersionInfoW(LPCWSTR,DWORD,DWORD,LPVOID);
170 #define     GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo)
171
172 /* 20 GETFILEVERSIONINFORAW */
173
174 #endif /* RC_INVOKED */
175
176 #ifdef __cplusplus
177 } /* extern "C" */
178 #endif /* defined(__cplusplus) */
179
180 #endif /* __WINE_WINVER_H */