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
;
35 typedef WCHAR OLECHAR
;
36 typedef LPWSTR LPOLESTR
;
37 typedef LPCWSTR LPCOLESTR
;
38 typedef OLECHAR
*BSTR
;
41 #define OLESTR(str) WINE_UNICODE_TEXT(str)
46 typedef unsigned __int64 DWORDLONG
, *PDWORDLONG
;
51 typedef signed __int64 LONGLONG
, *PLONGLONG
;
52 typedef unsigned __int64 ULONGLONG
, *PULONGLONG
;
55 typedef enum tagDVASPECT
58 DVASPECT_THUMBNAIL
= 2,
67 STGC_ONLYIFCURRENT
= 2,
68 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
= 4,
72 typedef enum tagSTGMOVE
76 STGMOVE_SHALLOWCOPY
= 2
80 typedef struct _COAUTHIDENTITY
91 typedef struct _COAUTHINFO
95 LPWSTR pwszServerPrincName
;
97 DWORD dwImpersonationLevel
;
98 COAUTHIDENTITY
* pAuthIdentityData
;
102 typedef struct _COSERVERINFO
106 COAUTHINFO
* pAuthInfo
;
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
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,
142 typedef enum tagMSHCTX
145 MSHCTX_NOSHAREDMEM
= 1,
146 MSHCTX_DIFFERENTMACHINE
= 2,
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
166 #ifndef _tagCY_DEFINED
167 #define _tagCY_DEFINED
169 typedef union tagCY
{
171 #ifdef WORDS_BIGENDIAN
182 #endif /* _tagCY_DEFINED */
184 typedef struct tagDEC
{
196 #ifdef WORDS_BIGENDIAN
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)
213 #define DECIMAL_SETZERO(d) \
214 do {(d).u2.Lo64 = 0; (d).Hi32 = 0; (d).u1.signscale = 0;} while (0)
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
231 /* Macro to calculate the size of the above pClipData */
232 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
238 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
242 DWORD dwHighDateTime
;
243 } FILETIME
, *LPFILETIME
;
244 #endif /* _FILETIME_ */
246 #ifndef _SECURITY_DEFINED
247 #define _SECURITY_DEFINED
251 } SID_IDENTIFIER_AUTHORITY
,*PSID_IDENTIFIER_AUTHORITY
;
253 typedef struct _SID
{
255 BYTE SubAuthorityCount
;
256 SID_IDENTIFIER_AUTHORITY IdentifierAuthority
;
257 DWORD SubAuthority
[1];
264 typedef struct _ACL
{
272 typedef USHORT SECURITY_DESCRIPTOR_CONTROL
, *PSECURITY_DESCRIPTOR_CONTROL
;
274 /* The security descriptor structure */
278 SECURITY_DESCRIPTOR_CONTROL Control
;
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) */
299 #endif /* __WINE_WTYPES_H */