Temporary fix suggested by Ulrich to allow the
[wine.git] / include / wtypes.h
bloba0833a4a13aec57674c1bd7cef812121adae30c0
1 /*
2 * Defines the basic types used by COM interfaces.
3 */
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_H
9 #include "wintypes.h"
11 /* FIXME: this line should be in rpcndr.h */
12 typedef unsigned char byte;
14 /* FIXME: and the following group should be in rpcdce.h */
15 typedef void* RPC_AUTH_IDENTITY_HANDLE;
16 typedef void* RPC_AUTHZ_HANDLE;
19 typedef WORD CLIPFORMAT32, *LPCLIPFORMAT32;
20 DECL_WINELIB_TYPE(CLIPFORMAT)
22 typedef CHAR OLECHAR16;
23 typedef WCHAR OLECHAR32;
24 DECL_WINELIB_TYPE(OLECHAR)
26 typedef LPSTR LPOLESTR16;
27 typedef LPWSTR LPOLESTR32;
28 DECL_WINELIB_TYPE(LPOLESTR)
30 typedef LPCSTR LPCOLESTR16;
31 typedef LPCWSTR LPCOLESTR32;
32 DECL_WINELIB_TYPE(LPCOLESTR)
34 typedef OLECHAR16 *BSTR16;
35 typedef OLECHAR32 *BSTR32;
36 DECL_WINELIB_TYPE(BSTR)
38 typedef BSTR16 *LPBSTR16;
39 typedef BSTR32 *LPBSTR32;
40 DECL_WINELIB_TYPE(LPBSTR)
42 #ifndef GUID_DEFINED
43 #define GUID_DEFINED
44 struct _GUID
46 DWORD Data1;
47 WORD Data2;
48 WORD Data3;
49 BYTE Data4[8];
51 #endif
53 typedef struct _GUID GUID,*LPGUID;
54 typedef struct _GUID CLSID,*LPCLSID;
55 typedef struct _GUID IID,*LPIID;
56 typedef struct _GUID FMTID,*LPFMTID;
57 #ifdef __cplusplus
58 #define REFGUID const GUID &
59 #define REFCLSID const CLSID &
60 #define REFIID const IID &
61 #define REFFMTID const FMTID &
62 #else // !__cplusplus
63 #define REFGUID const GUID* const
64 #define REFCLSID const CLSID* const
65 #define REFIID const IID* const
66 #define REFFMTID const FMTID* const
67 #endif // !__cplusplus
70 #define DECLARE_HANDLE(a) typedef HANDLE16 a##16; typedef HANDLE32 a##32
71 DECLARE_HANDLE(HMETAFILEPICT);
72 #undef DECLARE_HANDLE
74 typedef struct _COAUTHIDENTITY
76 USHORT* User;
77 ULONG UserLength;
78 USHORT* Domain;
79 ULONG DomainLength;
80 USHORT* Password;
81 ULONG PasswordLength;
82 ULONG Flags;
83 } COAUTHIDENTITY;
85 typedef struct _COAUTHINFO
87 DWORD dwAuthnSvc;
88 DWORD dwAuthzSvc;
89 LPWSTR pwszServerPrincName;
90 DWORD dwAuthnLevel;
91 DWORD dwImpersonationLevel;
92 COAUTHIDENTITY* pAuthIdentityData;
93 DWORD dwCapabilities;
94 } COAUTHINFO;
96 typedef struct _COSERVERINFO
98 DWORD dwReserved1;
99 LPWSTR pwszName;
100 COAUTHINFO* pAuthInfo;
101 DWORD dwReserved2;
102 } COSERVERINFO;
104 typedef enum tagCLSCTX
106 CLSCTX_INPROC_SERVER = 0x1,
107 CLSCTX_INPROC_HANDLER = 0x2,
108 CLSCTX_LOCAL_SERVER = 0x4,
109 CLSCTX_INPROC_SERVER16 = 0x8,
110 CLSCTX_REMOTE_SERVER = 0x10,
111 CLSCTX_INPROC_HANDLER16 = 0x20,
112 CLSCTX_INPROC_SERVERX86 = 0x40,
113 CLSCTX_INPROC_HANDLERX86 = 0x80
114 } CLSCTX;
116 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
117 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
118 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
120 typedef unsigned short VARTYPE;
122 typedef ULONG PROPID;
124 typedef struct tagBLOB
126 ULONG cbSize;
127 BYTE *pBlobData;
128 } BLOB;
130 #ifndef _tagCY_DEFINED
131 #define _tagCY_DEFINED
132 typedef union tagCY
134 struct {
135 #ifdef BIG_ENDIAN
136 long Hi;
137 long Lo;
138 #else
139 unsigned long Lo;
140 long Hi;
141 #endif
142 } u;
143 LONGLONG int64;
144 } CY;
145 #endif /* _tagCY_DEFINED */
148 * 0 == FALSE and -1 == TRUE
150 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
151 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
152 typedef short VARIANT_BOOL,_VARIANT_BOOL;
154 typedef struct tagCLIPDATA
156 ULONG cbSize;
157 long ulClipFmt;
158 BYTE *pClipData;
159 } CLIPDATA;
161 // Macro to calculate the size of the above pClipData
162 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
164 typedef LONG SCODE;
166 #ifndef _FILETIME_
167 #define _FILETIME_
168 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
169 typedef struct
171 DWORD dwLowDateTime;
172 DWORD dwHighDateTime;
173 } FILETIME, *LPFILETIME;
174 #endif /* _FILETIME_ */
176 #ifndef _SECURITY_DEFINED
177 #define _SECURITY_DEFINED
179 typedef struct {
180 BYTE Value[6];
181 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
183 typedef struct _SID {
184 BYTE Revision;
185 BYTE SubAuthorityCount;
186 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
187 DWORD SubAuthority[1];
188 } SID,*PSID;
191 * ACL
194 typedef struct _ACL {
195 BYTE AclRevision;
196 BYTE Sbz1;
197 WORD AclSize;
198 WORD AceCount;
199 WORD Sbz2;
200 } ACL, *PACL;
202 typedef WORD SECURITY_DESCRIPTOR_CONTROL;
204 /* The security descriptor structure */
205 typedef struct {
206 BYTE Revision;
207 BYTE Sbz1;
208 SECURITY_DESCRIPTOR_CONTROL Control;
209 PSID Owner;
210 PSID Group;
211 PACL Sacl;
212 PACL Dacl;
213 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
215 #endif /* _SECURITY_DEFINED */
218 #endif /* __WINE_WTYPES_H */