2 * Defines the basic types used by COM interfaces.
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_H
13 typedef WORD CLIPFORMAT
, *LPCLIPFORMAT
;
15 typedef CHAR OLECHAR16
;
16 typedef WCHAR OLECHAR
;
18 typedef LPSTR LPOLESTR16
;
19 typedef LPWSTR LPOLESTR
;
21 typedef LPCSTR LPCOLESTR16
;
22 typedef LPCWSTR LPCOLESTR
;
24 typedef OLECHAR16
*BSTR16
;
25 typedef OLECHAR
*BSTR
;
27 typedef BSTR16
*LPBSTR16
;
31 #define OLESTR(x) L##x
33 #if defined(__cplusplus) && !defined(CINTERFACE)
34 #define REFGUID const GUID &
35 #define REFCLSID const CLSID &
36 #define REFIID const IID &
37 #define REFFMTID const FMTID &
38 #else /* !defined(__cplusplus) && !defined(CINTERFACE) */
39 #define REFGUID const GUID* const
40 #define REFCLSID const CLSID* const
41 #define REFIID const IID* const
42 #define REFFMTID const FMTID* const
43 #endif /* !defined(__cplusplus) && !defined(CINTERFACE) */
45 extern const IID GUID_NULL
;
46 #define IID_NULL GUID_NULL
47 #define CLSID_NULL GUID_NULL
48 #define FMTID_NULL GUID_NULL
50 typedef enum tagDVASPECT
53 DVASPECT_THUMBNAIL
= 2,
62 STGC_ONLYIFCURRENT
= 2,
63 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
= 4
66 typedef struct _COAUTHIDENTITY
77 typedef struct _COAUTHINFO
81 LPWSTR pwszServerPrincName
;
83 DWORD dwImpersonationLevel
;
84 COAUTHIDENTITY
* pAuthIdentityData
;
88 typedef struct _COSERVERINFO
92 COAUTHINFO
* pAuthInfo
;
96 typedef enum tagCLSCTX
98 CLSCTX_INPROC_SERVER
= 0x1,
99 CLSCTX_INPROC_HANDLER
= 0x2,
100 CLSCTX_LOCAL_SERVER
= 0x4,
101 CLSCTX_INPROC_SERVER16
= 0x8,
102 CLSCTX_REMOTE_SERVER
= 0x10,
103 CLSCTX_INPROC_HANDLER16
= 0x20,
104 CLSCTX_INPROC_SERVERX86
= 0x40,
105 CLSCTX_INPROC_HANDLERX86
= 0x80
108 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
109 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
110 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
112 typedef unsigned short VARTYPE
;
114 typedef ULONG PROPID
;
116 #ifndef _tagBLOB_DEFINED
117 #define _tagBLOB_DEFINED
118 #define _BLOB_DEFINED
119 #define _LPBLOB_DEFINED
120 typedef struct tagBLOB
127 #ifndef _tagCY_DEFINED
128 #define _tagCY_DEFINED
130 typedef union tagCY
{
135 #else /* defined(BIG_ENDIAN) */
138 #endif /* defined(BIG_ENDIAN) */
143 #endif /* _tagCY_DEFINED */
146 * 0 == FALSE and -1 == TRUE
148 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
149 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
150 typedef short VARIANT_BOOL
,_VARIANT_BOOL
;
152 typedef struct tagCLIPDATA
159 /* Macro to calculate the size of the above pClipData */
160 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
166 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
170 DWORD dwHighDateTime
;
171 } FILETIME
, *LPFILETIME
;
172 #endif /* _FILETIME_ */
174 #ifndef _SECURITY_DEFINED
175 #define _SECURITY_DEFINED
179 } SID_IDENTIFIER_AUTHORITY
,*PSID_IDENTIFIER_AUTHORITY
;
181 typedef struct _SID
{
183 BYTE SubAuthorityCount
;
184 SID_IDENTIFIER_AUTHORITY IdentifierAuthority
;
185 DWORD SubAuthority
[1];
192 typedef struct _ACL
{
200 typedef DWORD SECURITY_INFORMATION
;
201 typedef WORD SECURITY_DESCRIPTOR_CONTROL
, *PSECURITY_DESCRIPTOR_CONTROL
;
202 typedef DWORD ACCESS_MASK
, *PACCESS_MASK
;
204 typedef PVOID PGENERIC_MAPPING
;
206 /* The security descriptor structure */
210 SECURITY_DESCRIPTOR_CONTROL Control
;
215 } SECURITY_DESCRIPTOR
, *PSECURITY_DESCRIPTOR
;
217 #ifndef _ROTFLAGS_DEFINED
218 #define _ROTFLAGS_DEFINED
219 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
220 #define ROTFLAGS_ALLOWANYCLIENT 0x2
221 #endif /* !defined(_ROTFLAGS_DEFINED) */
223 #endif /* _SECURITY_DEFINED */
226 #endif /* __WINE_WTYPES_H */