LVS_OWNERDRAWFIXED should only take effect in REPORT mode.
[wine/multimedia.git] / include / wtypes.h
blob074a58ae790e4bd5102ad5ead30dbd794efba8a7
1 /*
2 * Defines the basic types used by COM interfaces.
4 * Copyright (C) the Wine project
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef __WINE_WTYPES_H
22 #define __WINE_WTYPES_H
23 typedef void* HMETAFILEPICT;
25 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
27 /* FIXME: does not belong here */
28 typedef CHAR OLECHAR16;
29 typedef LPSTR LPOLESTR16;
30 typedef LPCSTR LPCOLESTR16;
31 typedef OLECHAR16 *BSTR16;
32 typedef BSTR16 *LPBSTR16;
33 #define OLESTR16(x) x
35 typedef WCHAR OLECHAR;
36 typedef LPWSTR LPOLESTR;
37 typedef LPCWSTR LPCOLESTR;
38 typedef OLECHAR *BSTR;
39 typedef BSTR *LPBSTR;
40 #ifndef __WINE__
41 #define OLESTR(str) WINE_UNICODE_TEXT(str)
42 #endif
44 #ifndef _DWORDLONG_
45 #define _DWORDLONG_
46 typedef unsigned __int64 DWORDLONG, *PDWORDLONG;
47 #endif
49 #ifndef _ULONGLONG_
50 #define _ULONGLONG_
51 typedef signed __int64 LONGLONG, *PLONGLONG;
52 typedef unsigned __int64 ULONGLONG, *PULONGLONG;
53 #endif
55 typedef enum tagDVASPECT
57 DVASPECT_CONTENT = 1,
58 DVASPECT_THUMBNAIL = 2,
59 DVASPECT_ICON = 4,
60 DVASPECT_DOCPRINT = 8
61 } DVASPECT;
63 typedef enum tagSTGC
65 STGC_DEFAULT = 0,
66 STGC_OVERWRITE = 1,
67 STGC_ONLYIFCURRENT = 2,
68 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
69 STGC_CONSOLIDATE = 8
70 } STGC;
72 typedef enum tagSTGMOVE
74 STGMOVE_MOVE = 0,
75 STGMOVE_COPY = 1,
76 STGMOVE_SHALLOWCOPY = 2
77 } STGMOVE;
80 typedef struct _COAUTHIDENTITY
82 USHORT* User;
83 ULONG UserLength;
84 USHORT* Domain;
85 ULONG DomainLength;
86 USHORT* Password;
87 ULONG PasswordLength;
88 ULONG Flags;
89 } COAUTHIDENTITY;
91 typedef struct _COAUTHINFO
93 DWORD dwAuthnSvc;
94 DWORD dwAuthzSvc;
95 LPWSTR pwszServerPrincName;
96 DWORD dwAuthnLevel;
97 DWORD dwImpersonationLevel;
98 COAUTHIDENTITY* pAuthIdentityData;
99 DWORD dwCapabilities;
100 } COAUTHINFO;
102 typedef struct _COSERVERINFO
104 DWORD dwReserved1;
105 LPWSTR pwszName;
106 COAUTHINFO* pAuthInfo;
107 DWORD dwReserved2;
108 } COSERVERINFO;
110 typedef enum tagCLSCTX
112 CLSCTX_INPROC_SERVER = 0x1,
113 CLSCTX_INPROC_HANDLER = 0x2,
114 CLSCTX_LOCAL_SERVER = 0x4,
115 CLSCTX_INPROC_SERVER16 = 0x8,
116 CLSCTX_REMOTE_SERVER = 0x10,
117 CLSCTX_INPROC_HANDLER16 = 0x20,
118 CLSCTX_INPROC_SERVERX86 = 0x40,
119 CLSCTX_INPROC_HANDLERX86 = 0x80,
120 CLSCTX_ESERVER_HANDLER = 0x100,
121 CLSCTX_NO_CODE_DOWNLOAD = 0x400,
122 CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
123 CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
124 CLSCTX_NO_FAILURE_LOG = 0x4000,
125 CLSCTX_DISABLE_AAA = 0x8000,
126 CLSCTX_ENABLE_AAA = 0x10000,
127 CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
128 } CLSCTX;
130 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
131 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
132 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
134 typedef enum tagMSHLFLAGS
136 MSHLFLAGS_NORMAL = 0,
137 MSHLFLAGS_TABLESTRONG = 1,
138 MSHLFLAGS_TABLEWEAK = 2,
139 MSHLFLAGS_NOPING = 4
140 } MSHLFLAGS;
142 typedef enum tagMSHCTX
144 MSHCTX_LOCAL = 0,
145 MSHCTX_NOSHAREDMEM = 1,
146 MSHCTX_DIFFERENTMACHINE = 2,
147 MSHCTX_INPROC = 3,
148 MSHCTX_CROSSCTX = 4
149 } MSHCTX;
151 typedef unsigned short VARTYPE;
153 typedef ULONG PROPID;
155 #ifndef _tagBLOB_DEFINED
156 #define _tagBLOB_DEFINED
157 #define _BLOB_DEFINED
158 #define _LPBLOB_DEFINED
159 typedef struct tagBLOB
161 ULONG cbSize;
162 BYTE *pBlobData;
163 } BLOB, *LPBLOB;
164 #endif
166 #ifndef _tagCY_DEFINED
167 #define _tagCY_DEFINED
169 typedef union tagCY {
170 struct {
171 #ifdef WORDS_BIGENDIAN
172 LONG Hi;
173 ULONG Lo;
174 #else
175 ULONG Lo;
176 LONG Hi;
177 #endif
178 } DUMMYSTRUCTNAME;
179 LONGLONG int64;
180 } CY;
182 #endif /* _tagCY_DEFINED */
184 typedef struct tagDEC {
185 USHORT wReserved;
186 union {
187 struct {
188 BYTE scale;
189 BYTE sign;
190 } DUMMYSTRUCTNAME1;
191 USHORT signscale;
192 } DUMMYUNIONNAME1;
193 ULONG Hi32;
194 union {
195 struct {
196 #ifdef WORDS_BIGENDIAN
197 ULONG Mid32;
198 ULONG Lo32;
199 #else
200 ULONG Lo32;
201 ULONG Mid32;
202 #endif
203 } DUMMYSTRUCTNAME2;
204 ULONGLONG Lo64;
205 } DUMMYUNIONNAME2;
206 } DECIMAL;
208 #define DECIMAL_NEG ((BYTE)0x80)
209 #ifndef NONAMELESSUNION
210 #define DECIMAL_SETZERO(d) \
211 do {(d).Lo64 = 0; (d).Hi32 = 0; (d).signscale = 0;} while (0)
212 #else
213 #define DECIMAL_SETZERO(d) \
214 do {(d).u2.Lo64 = 0; (d).Hi32 = 0; (d).u1.signscale = 0;} while (0)
215 #endif
218 * 0 == FALSE and -1 == TRUE
220 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
221 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
222 typedef short VARIANT_BOOL,_VARIANT_BOOL;
224 typedef struct tagCLIPDATA
226 ULONG cbSize;
227 long ulClipFmt;
228 BYTE *pClipData;
229 } CLIPDATA;
231 /* Macro to calculate the size of the above pClipData */
232 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
234 typedef LONG SCODE;
236 #ifndef _FILETIME_
237 #define _FILETIME_
238 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
239 typedef struct
241 DWORD dwLowDateTime;
242 DWORD dwHighDateTime;
243 } FILETIME, *LPFILETIME;
244 #endif /* _FILETIME_ */
246 #ifndef _SECURITY_DEFINED
247 #define _SECURITY_DEFINED
249 typedef struct {
250 BYTE Value[6];
251 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
253 typedef struct _SID {
254 BYTE Revision;
255 BYTE SubAuthorityCount;
256 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
257 DWORD SubAuthority[1];
258 } SID,*PSID;
261 * ACL
264 typedef struct _ACL {
265 BYTE AclRevision;
266 BYTE Sbz1;
267 WORD AclSize;
268 WORD AceCount;
269 WORD Sbz2;
270 } ACL, *PACL;
272 typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
274 /* The security descriptor structure */
275 typedef struct {
276 BYTE Revision;
277 BYTE Sbz1;
278 SECURITY_DESCRIPTOR_CONTROL Control;
279 PSID Owner;
280 PSID Group;
281 PACL Sacl;
282 PACL Dacl;
283 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
285 #endif /* _SECURITY_DEFINED */
287 #ifndef _ROTFLAGS_DEFINED
288 #define _ROTFLAGS_DEFINED
289 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
290 #define ROTFLAGS_ALLOWANYCLIENT 0x2
291 #endif /* !defined(_ROTFLAGS_DEFINED) */
293 #include "rpc.h"
294 #include "rpcndr.h"
296 #include "basetsd.h"
297 #include "guiddef.h"
299 #endif /* __WINE_WTYPES_H */