2 * Defines the basic types used by COM interfaces.
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_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 CLIPFORMAT
, *LPCLIPFORMAT
;
21 typedef CHAR OLECHAR16
;
22 typedef WCHAR OLECHAR
;
24 typedef LPSTR LPOLESTR16
;
25 typedef LPWSTR LPOLESTR
;
27 typedef LPCSTR LPCOLESTR16
;
28 typedef LPCWSTR LPCOLESTR
;
30 typedef OLECHAR16
*BSTR16
;
31 typedef OLECHAR
*BSTR
;
33 typedef BSTR16
*LPBSTR16
;
37 #define OLESTR(x) L##x
51 typedef GUID CLSID
,*LPCLSID
;
52 typedef GUID IID
,*LPIID
;
53 typedef GUID FMTID
,*LPFMTID
;
54 #if defined(__cplusplus) && !defined(CINTERFACE)
55 #define REFGUID const GUID &
56 #define REFCLSID const CLSID &
57 #define REFIID const IID &
58 #define REFFMTID const FMTID &
59 #else /* !defined(__cplusplus) && !defined(CINTERFACE) */
60 #define REFGUID const GUID* const
61 #define REFCLSID const CLSID* const
62 #define REFIID const IID* const
63 #define REFFMTID const FMTID* const
64 #endif /* !defined(__cplusplus) && !defined(CINTERFACE) */
66 extern const IID GUID_NULL
;
67 #define IID_NULL GUID_NULL
68 #define CLSID_NULL GUID_NULL
69 #define FMTID_NULL GUID_NULL
71 typedef enum tagDVASPECT
74 DVASPECT_THUMBNAIL
= 2,
83 STGC_ONLYIFCURRENT
= 2,
84 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
= 4
87 typedef struct _COAUTHIDENTITY
98 typedef struct _COAUTHINFO
102 LPWSTR pwszServerPrincName
;
104 DWORD dwImpersonationLevel
;
105 COAUTHIDENTITY
* pAuthIdentityData
;
106 DWORD dwCapabilities
;
109 typedef struct _COSERVERINFO
113 COAUTHINFO
* pAuthInfo
;
117 typedef enum tagCLSCTX
119 CLSCTX_INPROC_SERVER
= 0x1,
120 CLSCTX_INPROC_HANDLER
= 0x2,
121 CLSCTX_LOCAL_SERVER
= 0x4,
122 CLSCTX_INPROC_SERVER16
= 0x8,
123 CLSCTX_REMOTE_SERVER
= 0x10,
124 CLSCTX_INPROC_HANDLER16
= 0x20,
125 CLSCTX_INPROC_SERVERX86
= 0x40,
126 CLSCTX_INPROC_HANDLERX86
= 0x80
129 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
130 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
131 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
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
148 #ifndef _tagCY_DEFINED
149 #define _tagCY_DEFINED
151 typedef union tagCY
{
156 #else /* defined(BIG_ENDIAN) */
159 #endif /* defined(BIG_ENDIAN) */
164 #endif /* _tagCY_DEFINED */
167 * 0 == FALSE and -1 == TRUE
169 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
170 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
171 typedef short VARIANT_BOOL
,_VARIANT_BOOL
;
173 typedef struct tagCLIPDATA
180 /* Macro to calculate the size of the above pClipData */
181 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
187 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
191 DWORD dwHighDateTime
;
192 } FILETIME
, *LPFILETIME
;
193 #endif /* _FILETIME_ */
195 #ifndef _SECURITY_DEFINED
196 #define _SECURITY_DEFINED
200 } SID_IDENTIFIER_AUTHORITY
,*PSID_IDENTIFIER_AUTHORITY
;
202 typedef struct _SID
{
204 BYTE SubAuthorityCount
;
205 SID_IDENTIFIER_AUTHORITY IdentifierAuthority
;
206 DWORD SubAuthority
[1];
213 typedef struct _ACL
{
221 typedef DWORD SECURITY_INFORMATION
;
222 typedef WORD SECURITY_DESCRIPTOR_CONTROL
, *PSECURITY_DESCRIPTOR_CONTROL
;
223 typedef DWORD ACCESS_MASK
, *PACCESS_MASK
;
225 typedef PVOID PGENERIC_MAPPING
;
227 /* The security descriptor structure */
231 SECURITY_DESCRIPTOR_CONTROL Control
;
236 } SECURITY_DESCRIPTOR
, *PSECURITY_DESCRIPTOR
;
238 #ifndef _ROTFLAGS_DEFINED
239 #define _ROTFLAGS_DEFINED
240 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
241 #define ROTFLAGS_ALLOWANYCLIENT 0x2
242 #endif /* !defined(_ROTFLAGS_DEFINED) */
244 #endif /* _SECURITY_DEFINED */
247 #endif /* __WINE_WTYPES_H */