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 */