Release 970616
[wine] / include / ver.h
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
7
8 #include "windows.h"
9
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)
14
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 */
18
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
26
27 /* VS_VERSION.dwFileOS */
28
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
35
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
42
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)
49
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
59
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
73
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
78
79 /* VerFindFile Flags */
80         /* input */
81 #define VFFF_ISSHAREDFILE       0x0001
82
83         /* output (returned) */
84 #define VFF_CURNEDEST           0x0001
85 #define VFF_FILEINUSE           0x0002
86 #define VFF_BUFFTOOSMALL        0x0004
87
88 /* VerInstallFile Flags */
89         /* input */
90 #define VIFF_FORCEINSTALL       0x0001
91 #define VIFF_DONTDELETEOLD      0x0002
92
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
113
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;
129
130 /* following two aren't in version.dll */
131 DWORD
132 GetFileResourceSize(LPCSTR filename,SEGPTR restype,SEGPTR resid,LPDWORD off);
133
134 DWORD
135 GetFileResource(LPCSTR filename,SEGPTR restype,SEGPTR resid,
136                 DWORD off,DWORD reslen,LPVOID data
137 );
138
139
140 /* 20 GETFILEVERSIONINFORAW */
141
142 #endif  /* __WINE_VER_H */