Compile fix for GCC 2.7.x.
[wine/wine64.git] / include / wtypes.h
blobfdcf1806c187bc230533882c4fc1ec7ec1c07749
1 /*
2 * Defines the basic types used by COM interfaces.
3 */
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_H
8 #include "basetsd.h"
9 #include "guiddef.h"
10 #include "rpc.h"
11 #include "rpcndr.h"
13 typedef void* HMETAFILEPICT;
15 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
17 /* FIXME: does not belong here */
18 typedef CHAR OLECHAR16;
19 typedef LPSTR LPOLESTR16;
20 typedef LPCSTR LPCOLESTR16;
21 typedef OLECHAR16 *BSTR16;
22 typedef BSTR16 *LPBSTR16;
23 #define OLESTR16(x) x
25 typedef WCHAR OLECHAR;
26 typedef LPWSTR LPOLESTR;
27 typedef LPCWSTR LPCOLESTR;
28 typedef OLECHAR *BSTR;
29 typedef BSTR *LPBSTR;
30 #ifndef __WINE__
31 #define OLESTR(str) WINE_UNICODE_TEXT(str)
32 #endif
34 #ifndef _DWORDLONG_
35 #define _DWORDLONG_
36 typedef __uint64 DWORDLONG, *PDWORDLONG;
37 #endif
39 #ifndef _ULONGLONG_
40 #define _ULONGLONG_
41 typedef __int64 LONGLONG, *PLONGLONG;
42 typedef __uint64 ULONGLONG, *PULONGLONG;
43 #endif
45 typedef enum tagDVASPECT
47 DVASPECT_CONTENT = 1,
48 DVASPECT_THUMBNAIL = 2,
49 DVASPECT_ICON = 4,
50 DVASPECT_DOCPRINT = 8
51 } DVASPECT;
53 typedef enum tagSTGC
55 STGC_DEFAULT = 0,
56 STGC_OVERWRITE = 1,
57 STGC_ONLYIFCURRENT = 2,
58 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
59 STGC_CONSOLIDATE = 8
60 } STGC;
62 typedef enum tagSTGMOVE
64 STGMOVE_MOVE = 0,
65 STGMOVE_COPY = 1,
66 STGMOVE_SHALLOWCOPY = 2
67 } STGMOVE;
70 typedef struct _COAUTHIDENTITY
72 USHORT* User;
73 ULONG UserLength;
74 USHORT* Domain;
75 ULONG DomainLength;
76 USHORT* Password;
77 ULONG PasswordLength;
78 ULONG Flags;
79 } COAUTHIDENTITY;
81 typedef struct _COAUTHINFO
83 DWORD dwAuthnSvc;
84 DWORD dwAuthzSvc;
85 LPWSTR pwszServerPrincName;
86 DWORD dwAuthnLevel;
87 DWORD dwImpersonationLevel;
88 COAUTHIDENTITY* pAuthIdentityData;
89 DWORD dwCapabilities;
90 } COAUTHINFO;
92 typedef struct _COSERVERINFO
94 DWORD dwReserved1;
95 LPWSTR pwszName;
96 COAUTHINFO* pAuthInfo;
97 DWORD dwReserved2;
98 } COSERVERINFO;
100 typedef enum tagCLSCTX
102 CLSCTX_INPROC_SERVER = 0x1,
103 CLSCTX_INPROC_HANDLER = 0x2,
104 CLSCTX_LOCAL_SERVER = 0x4,
105 CLSCTX_INPROC_SERVER16 = 0x8,
106 CLSCTX_REMOTE_SERVER = 0x10,
107 CLSCTX_INPROC_HANDLER16 = 0x20,
108 CLSCTX_INPROC_SERVERX86 = 0x40,
109 CLSCTX_INPROC_HANDLERX86 = 0x80,
110 CLSCTX_ESERVER_HANDLER = 0x100
111 } CLSCTX;
113 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
114 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
115 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
117 typedef enum tagMSHLFLAGS
119 MSHLFLAGS_NORMAL = 0,
120 MSHLFLAGS_TABLESTRONG = 1,
121 MSHLFLAGS_TABLEWEAK = 2,
122 MSHLFLAGS_NOPING = 4
123 } MSHLFLAGS;
125 typedef enum tagMSHCTX
127 MSHCTX_LOCAL = 0,
128 MSHCTX_NOSHAREDMEM = 1,
129 MSHCTX_DIFFERENTMACHINE = 2,
130 MSHCTX_INPROC = 3
131 } MSHCTX;
133 typedef unsigned short VARTYPE;
135 typedef ULONG PROPID;
137 #ifndef _tagBLOB_DEFINED
138 #define _tagBLOB_DEFINED
139 #define _BLOB_DEFINED
140 #define _LPBLOB_DEFINED
141 typedef struct tagBLOB
143 ULONG cbSize;
144 BYTE *pBlobData;
145 } BLOB, *LPBLOB;
146 #endif
148 #ifndef _tagCY_DEFINED
149 #define _tagCY_DEFINED
151 typedef union tagCY {
152 struct {
153 #ifdef BIG_ENDIAN
154 LONG Hi;
155 LONG Lo;
156 #else /* defined(BIG_ENDIAN) */
157 ULONG Lo;
158 LONG Hi;
159 #endif /* defined(BIG_ENDIAN) */
160 } DUMMYSTRUCTNAME;
161 LONGLONG int64;
162 } CY;
164 #endif /* _tagCY_DEFINED */
166 typedef struct tagDEC {
167 USHORT wReserved;
168 union {
169 struct {
170 BYTE scale;
171 BYTE sign;
172 } DUMMYSTRUCTNAME1;
173 USHORT signscale;
174 } DUMMYUNIONNAME1;
175 ULONG Hi32;
176 union {
177 struct {
178 #ifdef BIG_ENDIAN
179 ULONG Mid32;
180 ULONG Lo32;
181 #else /* defined(BIG_ENDIAN) */
182 ULONG Lo32;
183 ULONG Mid32;
184 #endif /* defined(BIG_ENDIAN) */
185 } DUMMYSTRUCTNAME2;
186 ULONGLONG Lo64;
187 } DUMMYUNIONNAME2;
188 } DECIMAL;
190 #define DECIMAL_NEG ((BYTE)0x80)
191 #ifndef NONAMELESSUNION
192 #define DECIMAL_SETZERO(d) \
193 do {(d).Lo64 = 0; (d).Hi32 = 0; (d).signscale = 0;} while (0)
194 #else
195 #define DECIMAL_SETZERO(d) \
196 do {(d).u2.Lo64 = 0; (d).Hi32 = 0; (d).u1.signscale = 0;} while (0)
197 #endif
200 * 0 == FALSE and -1 == TRUE
202 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
203 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
204 typedef short VARIANT_BOOL,_VARIANT_BOOL;
206 typedef struct tagCLIPDATA
208 ULONG cbSize;
209 long ulClipFmt;
210 BYTE *pClipData;
211 } CLIPDATA;
213 /* Macro to calculate the size of the above pClipData */
214 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
216 typedef LONG SCODE;
218 #ifndef _FILETIME_
219 #define _FILETIME_
220 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
221 typedef struct
223 DWORD dwLowDateTime;
224 DWORD dwHighDateTime;
225 } FILETIME, *LPFILETIME;
226 #endif /* _FILETIME_ */
228 #ifndef _SECURITY_DEFINED
229 #define _SECURITY_DEFINED
231 typedef struct {
232 BYTE Value[6];
233 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
235 typedef struct _SID {
236 BYTE Revision;
237 BYTE SubAuthorityCount;
238 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
239 DWORD SubAuthority[1];
240 } SID,*PSID;
243 * ACL
246 typedef struct _ACL {
247 BYTE AclRevision;
248 BYTE Sbz1;
249 WORD AclSize;
250 WORD AceCount;
251 WORD Sbz2;
252 } ACL, *PACL;
254 typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
256 /* The security descriptor structure */
257 typedef struct {
258 BYTE Revision;
259 BYTE Sbz1;
260 SECURITY_DESCRIPTOR_CONTROL Control;
261 PSID Owner;
262 PSID Group;
263 PACL Sacl;
264 PACL Dacl;
265 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
267 #endif /* _SECURITY_DEFINED */
269 #ifndef _ROTFLAGS_DEFINED
270 #define _ROTFLAGS_DEFINED
271 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
272 #define ROTFLAGS_ALLOWANYCLIENT 0x2
273 #endif /* !defined(_ROTFLAGS_DEFINED) */
275 #endif /* __WINE_WTYPES_H */