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 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
)
53 typedef struct _GUID GUID
,*LPGUID
;
54 typedef struct _GUID CLSID
,*LPCLSID
;
55 typedef struct _GUID IID
,*LPIID
;
56 typedef struct _GUID FMTID
,*LPFMTID
;
58 #define REFGUID const GUID &
59 #define REFCLSID const CLSID &
60 #define REFIID const IID &
61 #define REFFMTID const FMTID &
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
);
74 typedef struct _COAUTHIDENTITY
85 typedef struct _COAUTHINFO
89 LPWSTR pwszServerPrincName
;
91 DWORD dwImpersonationLevel
;
92 COAUTHIDENTITY
* pAuthIdentityData
;
96 typedef struct _COSERVERINFO
100 COAUTHINFO
* pAuthInfo
;
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
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
130 #ifndef _tagCY_DEFINED
131 #define _tagCY_DEFINED
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
161 // Macro to calculate the size of the above pClipData
162 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
168 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
172 DWORD dwHighDateTime
;
173 } FILETIME
, *LPFILETIME
;
174 #endif /* _FILETIME_ */
176 #ifndef _SECURITY_DEFINED
177 #define _SECURITY_DEFINED
181 } SID_IDENTIFIER_AUTHORITY
,*PSID_IDENTIFIER_AUTHORITY
;
183 typedef struct _SID
{
185 BYTE SubAuthorityCount
;
186 SID_IDENTIFIER_AUTHORITY IdentifierAuthority
;
187 DWORD SubAuthority
[1];
194 typedef struct _ACL
{
202 typedef WORD SECURITY_DESCRIPTOR_CONTROL
;
204 /* The security descriptor structure */
208 SECURITY_DESCRIPTOR_CONTROL Control
;
213 } SECURITY_DESCRIPTOR
, *PSECURITY_DESCRIPTOR
;
215 #endif /* _SECURITY_DEFINED */
218 #endif /* __WINE_WTYPES_H */