Partially revert previous changes, force configure to write an
[wine] / include / wtypes.h
1 /*
2  * Defines the basic types used by COM interfaces.
3  */
4
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_H
7
8 #include "basetsd.h"
9 #include "guiddef.h"
10 #include "rpc.h"
11 #include "rpcndr.h"
12
13 typedef void* HMETAFILEPICT;
14
15 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
16
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
24
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
33
34 #ifndef _DWORDLONG_
35 #define _DWORDLONG_
36 typedef __uint64 DWORDLONG, *PDWORDLONG;
37 #endif
38
39 #ifndef _ULONGLONG_
40 #define _ULONGLONG_
41 typedef __int64 LONGLONG, *PLONGLONG;
42 typedef __uint64 ULONGLONG, *PULONGLONG;
43 #endif
44
45 typedef enum tagDVASPECT
46
47        DVASPECT_CONTENT   = 1,
48        DVASPECT_THUMBNAIL = 2,
49        DVASPECT_ICON      = 4,   
50        DVASPECT_DOCPRINT  = 8
51 } DVASPECT;
52
53 typedef enum tagSTGC
54 {
55         STGC_DEFAULT = 0,
56         STGC_OVERWRITE = 1,
57         STGC_ONLYIFCURRENT = 2,
58         STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
59         STGC_CONSOLIDATE = 8
60 } STGC;
61
62 typedef enum tagSTGMOVE
63 {   
64         STGMOVE_MOVE = 0,
65         STGMOVE_COPY = 1,
66         STGMOVE_SHALLOWCOPY = 2
67 } STGMOVE;
68
69
70 typedef struct _COAUTHIDENTITY
71 {
72     USHORT* User;
73     ULONG UserLength;
74     USHORT* Domain;
75     ULONG DomainLength;
76     USHORT* Password;
77     ULONG PasswordLength;
78     ULONG Flags;
79 } COAUTHIDENTITY;
80
81 typedef struct _COAUTHINFO
82 {
83     DWORD dwAuthnSvc;
84     DWORD dwAuthzSvc;
85     LPWSTR pwszServerPrincName;
86     DWORD dwAuthnLevel;
87     DWORD dwImpersonationLevel;
88     COAUTHIDENTITY* pAuthIdentityData;
89     DWORD dwCapabilities;
90 } COAUTHINFO;
91
92 typedef struct _COSERVERINFO
93 {
94     DWORD dwReserved1;
95     LPWSTR pwszName;
96     COAUTHINFO* pAuthInfo;
97     DWORD dwReserved2;
98 } COSERVERINFO;
99
100 typedef enum tagCLSCTX
101 {
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;
112
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)
116
117 typedef enum tagMSHLFLAGS
118 {
119     MSHLFLAGS_NORMAL        = 0,
120     MSHLFLAGS_TABLESTRONG   = 1,
121     MSHLFLAGS_TABLEWEAK     = 2,
122     MSHLFLAGS_NOPING        = 4
123 } MSHLFLAGS;
124
125 typedef enum tagMSHCTX
126 {
127     MSHCTX_LOCAL            = 0,
128     MSHCTX_NOSHAREDMEM      = 1,
129     MSHCTX_DIFFERENTMACHINE = 2,
130     MSHCTX_INPROC           = 3
131 } MSHCTX;
132
133 typedef unsigned short VARTYPE;
134
135 typedef ULONG PROPID;
136
137 #ifndef _tagBLOB_DEFINED
138 #define _tagBLOB_DEFINED
139 #define _BLOB_DEFINED
140 #define _LPBLOB_DEFINED
141 typedef struct tagBLOB
142 {
143     ULONG cbSize;
144     BYTE *pBlobData;
145 } BLOB, *LPBLOB;
146 #endif
147
148 #ifndef _tagCY_DEFINED
149 #define _tagCY_DEFINED
150
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;
163
164 #endif /* _tagCY_DEFINED */
165
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;
189
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
198
199 /*
200  * 0 == FALSE and -1 == TRUE
201  */
202 #define VARIANT_TRUE     ((VARIANT_BOOL)0xFFFF)
203 #define VARIANT_FALSE    ((VARIANT_BOOL)0x0000)
204 typedef short VARIANT_BOOL,_VARIANT_BOOL;
205
206 typedef struct tagCLIPDATA
207 {
208     ULONG cbSize;
209     long ulClipFmt;
210     BYTE *pClipData;
211 } CLIPDATA;
212
213 /* Macro to calculate the size of the above pClipData */
214 #define CBPCLIPDATA(clipdata)    ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
215
216 typedef LONG SCODE;
217
218 #ifndef _FILETIME_
219 #define _FILETIME_
220 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
221 typedef struct
222 {
223   DWORD  dwLowDateTime;
224   DWORD  dwHighDateTime;
225 } FILETIME, *LPFILETIME;
226 #endif /* _FILETIME_ */
227
228 #ifndef _SECURITY_DEFINED
229 #define _SECURITY_DEFINED
230
231 typedef struct {
232     BYTE Value[6];
233 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
234
235 typedef struct _SID {
236     BYTE Revision;
237     BYTE SubAuthorityCount;
238     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
239     DWORD SubAuthority[1];
240 } SID,*PSID;
241
242 /*
243  * ACL 
244  */
245
246 typedef struct _ACL {
247     BYTE AclRevision;
248     BYTE Sbz1;
249     WORD AclSize;
250     WORD AceCount;
251     WORD Sbz2;
252 } ACL, *PACL;
253
254 typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
255
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;
266
267 #endif /* _SECURITY_DEFINED */
268
269 #ifndef _ROTFLAGS_DEFINED
270 #define _ROTFLAGS_DEFINED
271 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
272 #define ROTFLAGS_ALLOWANYCLIENT 0x2
273 #endif /* !defined(_ROTFLAGS_DEFINED) */
274
275 #endif /* __WINE_WTYPES_H */