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
29 typedef void* HMETAFILEPICT;
31 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
33 /* FIXME: does not belong here */
34 typedef CHAR OLECHAR16;
35 typedef LPSTR LPOLESTR16;
36 typedef LPCSTR LPCOLESTR16;
37 typedef OLECHAR16 *BSTR16;
38 typedef BSTR16 *LPBSTR16;
41 typedef WCHAR OLECHAR;
42 typedef LPWSTR LPOLESTR;
43 typedef LPCWSTR LPCOLESTR;
44 typedef OLECHAR *BSTR;
47 #define OLESTR(str) WINE_UNICODE_TEXT(str)
52 typedef __uint64 DWORDLONG, *PDWORDLONG;
57 typedef __int64 LONGLONG, *PLONGLONG;
58 typedef __uint64 ULONGLONG, *PULONGLONG;
61 typedef enum tagDVASPECT
64 DVASPECT_THUMBNAIL = 2,
73 STGC_ONLYIFCURRENT = 2,
74 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
78 typedef enum tagSTGMOVE
82 STGMOVE_SHALLOWCOPY = 2
86 typedef struct _COAUTHIDENTITY
97 typedef struct _COAUTHINFO
101 LPWSTR pwszServerPrincName;
103 DWORD dwImpersonationLevel;
104 COAUTHIDENTITY* pAuthIdentityData;
105 DWORD dwCapabilities;
108 typedef struct _COSERVERINFO
112 COAUTHINFO* pAuthInfo;
116 typedef enum tagCLSCTX
118 CLSCTX_INPROC_SERVER = 0x1,
119 CLSCTX_INPROC_HANDLER = 0x2,
120 CLSCTX_LOCAL_SERVER = 0x4,
121 CLSCTX_INPROC_SERVER16 = 0x8,
122 CLSCTX_REMOTE_SERVER = 0x10,
123 CLSCTX_INPROC_HANDLER16 = 0x20,
124 CLSCTX_INPROC_SERVERX86 = 0x40,
125 CLSCTX_INPROC_HANDLERX86 = 0x80,
126 CLSCTX_ESERVER_HANDLER = 0x100
129 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
130 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
131 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
133 typedef enum tagMSHLFLAGS
135 MSHLFLAGS_NORMAL = 0,
136 MSHLFLAGS_TABLESTRONG = 1,
137 MSHLFLAGS_TABLEWEAK = 2,
141 typedef enum tagMSHCTX
144 MSHCTX_NOSHAREDMEM = 1,
145 MSHCTX_DIFFERENTMACHINE = 2,
149 typedef unsigned short VARTYPE;
151 typedef ULONG PROPID;
153 #ifndef _tagBLOB_DEFINED
154 #define _tagBLOB_DEFINED
155 #define _BLOB_DEFINED
156 #define _LPBLOB_DEFINED
157 typedef struct tagBLOB
164 #ifndef _tagCY_DEFINED
165 #define _tagCY_DEFINED
167 typedef union tagCY {
169 #ifdef WORDS_BIGENDIAN
180 #endif /* _tagCY_DEFINED */
182 typedef struct tagDEC {
194 #ifdef WORDS_BIGENDIAN
206 #define DECIMAL_NEG ((BYTE)0x80)
207 #ifndef NONAMELESSUNION
208 #define DECIMAL_SETZERO(d) \
209 do {(d).Lo64 = 0; (d).Hi32 = 0; (d).signscale = 0;} while (0)
211 #define DECIMAL_SETZERO(d) \
212 do {(d).u2.Lo64 = 0; (d).Hi32 = 0; (d).u1.signscale = 0;} while (0)
216 * 0 == FALSE and -1 == TRUE
218 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
219 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
220 typedef short VARIANT_BOOL,_VARIANT_BOOL;
222 typedef struct tagCLIPDATA
229 /* Macro to calculate the size of the above pClipData */
230 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
236 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
240 DWORD dwHighDateTime;
241 } FILETIME, *LPFILETIME;
242 #endif /* _FILETIME_ */
244 #ifndef _SECURITY_DEFINED
245 #define _SECURITY_DEFINED
249 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
251 typedef struct _SID {
253 BYTE SubAuthorityCount;
254 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
255 DWORD SubAuthority[1];
262 typedef struct _ACL {
270 typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
272 /* The security descriptor structure */
276 SECURITY_DESCRIPTOR_CONTROL Control;
281 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
283 #endif /* _SECURITY_DEFINED */
285 #ifndef _ROTFLAGS_DEFINED
286 #define _ROTFLAGS_DEFINED
287 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
288 #define ROTFLAGS_ALLOWANYCLIENT 0x2
289 #endif /* !defined(_ROTFLAGS_DEFINED) */
291 #endif /* __WINE_WTYPES_H */