Implemented the IPersistStream interface on the OLE font object.
[wine/multimedia.git] / include / wtypes.h
blobbc0a8c854f6090d2c2fe88767343f4faa134206b
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 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;
34 typedef BSTR *LPBSTR;
36 #ifndef GUID_DEFINED
37 #define GUID_DEFINED
38 typedef struct _GUID
40 DWORD Data1;
41 WORD Data2;
42 WORD Data3;
43 BYTE Data4[8];
44 } GUID;
45 #endif
47 typedef GUID *LPGUID;
48 typedef GUID CLSID,*LPCLSID;
49 typedef GUID IID,*LPIID;
50 typedef GUID FMTID,*LPFMTID;
51 #ifdef __cplusplus
52 #define REFGUID const GUID &
53 #define REFCLSID const CLSID &
54 #define REFIID const IID &
55 #define REFFMTID const FMTID &
56 #else // !__cplusplus
57 #define REFGUID const GUID* const
58 #define REFCLSID const CLSID* const
59 #define REFIID const IID* const
60 #define REFFMTID const FMTID* const
61 #endif // !__cplusplus
63 #define GUID_NULL ((GUID*)NULL) /* Is this right? */
64 #define CLSID_NULL ((REFCLSID)NULL)
66 typedef enum tagDVASPECT
68 DVASPECT_CONTENT = 1,
69 DVASPECT_THUMBNAIL = 2,
70 DVASPECT_ICON = 4,
71 DVASPECT_DOCPRINT = 8
72 } DVASPECT;
74 #define DECLARE_HANDLE(a) typedef HANDLE16 a##16; typedef HANDLE a
75 DECLARE_HANDLE(HMETAFILEPICT);
76 #undef DECLARE_HANDLE
78 typedef struct _COAUTHIDENTITY
80 USHORT* User;
81 ULONG UserLength;
82 USHORT* Domain;
83 ULONG DomainLength;
84 USHORT* Password;
85 ULONG PasswordLength;
86 ULONG Flags;
87 } COAUTHIDENTITY;
89 typedef struct _COAUTHINFO
91 DWORD dwAuthnSvc;
92 DWORD dwAuthzSvc;
93 LPWSTR pwszServerPrincName;
94 DWORD dwAuthnLevel;
95 DWORD dwImpersonationLevel;
96 COAUTHIDENTITY* pAuthIdentityData;
97 DWORD dwCapabilities;
98 } COAUTHINFO;
100 typedef struct _COSERVERINFO
102 DWORD dwReserved1;
103 LPWSTR pwszName;
104 COAUTHINFO* pAuthInfo;
105 DWORD dwReserved2;
106 } COSERVERINFO;
108 typedef enum tagCLSCTX
110 CLSCTX_INPROC_SERVER = 0x1,
111 CLSCTX_INPROC_HANDLER = 0x2,
112 CLSCTX_LOCAL_SERVER = 0x4,
113 CLSCTX_INPROC_SERVER16 = 0x8,
114 CLSCTX_REMOTE_SERVER = 0x10,
115 CLSCTX_INPROC_HANDLER16 = 0x20,
116 CLSCTX_INPROC_SERVERX86 = 0x40,
117 CLSCTX_INPROC_HANDLERX86 = 0x80
118 } CLSCTX;
120 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
121 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
122 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
124 typedef unsigned short VARTYPE;
126 typedef ULONG PROPID;
128 typedef struct tagBLOB
130 ULONG cbSize;
131 BYTE *pBlobData;
132 } BLOB;
134 #ifndef _tagCY_DEFINED
135 #define _tagCY_DEFINED
136 typedef union tagCY
138 struct {
139 #ifdef BIG_ENDIAN
140 long Hi;
141 long Lo;
142 #else
143 unsigned long Lo;
144 long Hi;
145 #endif
146 } u;
147 LONGLONG int64;
148 } CY;
149 #endif /* _tagCY_DEFINED */
152 * 0 == FALSE and -1 == TRUE
154 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
155 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
156 typedef short VARIANT_BOOL,_VARIANT_BOOL;
158 typedef struct tagCLIPDATA
160 ULONG cbSize;
161 long ulClipFmt;
162 BYTE *pClipData;
163 } CLIPDATA;
165 // Macro to calculate the size of the above pClipData
166 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
168 typedef LONG SCODE;
170 #ifndef _FILETIME_
171 #define _FILETIME_
172 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
173 typedef struct
175 DWORD dwLowDateTime;
176 DWORD dwHighDateTime;
177 } FILETIME, *LPFILETIME;
178 #endif /* _FILETIME_ */
180 #ifndef _SECURITY_DEFINED
181 #define _SECURITY_DEFINED
183 typedef struct {
184 BYTE Value[6];
185 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
187 typedef struct _SID {
188 BYTE Revision;
189 BYTE SubAuthorityCount;
190 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
191 DWORD SubAuthority[1];
192 } SID,*PSID;
195 * ACL
198 typedef struct _ACL {
199 BYTE AclRevision;
200 BYTE Sbz1;
201 WORD AclSize;
202 WORD AceCount;
203 WORD Sbz2;
204 } ACL, *PACL;
206 typedef DWORD SECURITY_INFORMATION;
207 typedef WORD SECURITY_DESCRIPTOR_CONTROL;
209 /* The security descriptor structure */
210 typedef struct {
211 BYTE Revision;
212 BYTE Sbz1;
213 SECURITY_DESCRIPTOR_CONTROL Control;
214 PSID Owner;
215 PSID Group;
216 PACL Sacl;
217 PACL Dacl;
218 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
220 #endif /* _SECURITY_DEFINED */
223 #endif /* __WINE_WTYPES_H */