2 * Defines the basic types used by COM interfaces.
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_H
13 typedef void* HMETAFILEPICT
;
15 typedef WORD CLIPFORMAT
, *LPCLIPFORMAT
;
17 /* FIXME: does not belong here */
18 typedef CHAR OLECHAR16
;
19 typedef LPSTR LPOLESTR16
;
20 typedef LPCSTR LPCOLESTR16
;
21 typedef OLECHAR16
*BSTR16
;
22 typedef BSTR16
*LPBSTR16
;
25 typedef WCHAR OLECHAR
;
26 typedef LPWSTR LPOLESTR
;
27 typedef LPCWSTR LPCOLESTR
;
28 typedef OLECHAR
*BSTR
;
31 #define OLESTR(str) WINE_UNICODE_TEXT(str)
36 typedef __uint64 DWORDLONG
, *PDWORDLONG
;
41 typedef __int64 LONGLONG
, *PLONGLONG
;
42 typedef __uint64 ULONGLONG
, *PULONGLONG
;
45 typedef enum tagDVASPECT
48 DVASPECT_THUMBNAIL
= 2,
57 STGC_ONLYIFCURRENT
= 2,
58 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
= 4,
62 typedef enum tagSTGMOVE
66 STGMOVE_SHALLOWCOPY
= 2
70 typedef struct _COAUTHIDENTITY
81 typedef struct _COAUTHINFO
85 LPWSTR pwszServerPrincName
;
87 DWORD dwImpersonationLevel
;
88 COAUTHIDENTITY
* pAuthIdentityData
;
92 typedef struct _COSERVERINFO
96 COAUTHINFO
* pAuthInfo
;
100 typedef enum tagCLSCTX
102 CLSCTX_INPROC_SERVER
= 0x1,
103 CLSCTX_INPROC_HANDLER
= 0x2,
104 CLSCTX_LOCAL_SERVER
= 0x4,
105 CLSCTX_INPROC_SERVER16
= 0x8,
106 CLSCTX_REMOTE_SERVER
= 0x10,
107 CLSCTX_INPROC_HANDLER16
= 0x20,
108 CLSCTX_INPROC_SERVERX86
= 0x40,
109 CLSCTX_INPROC_HANDLERX86
= 0x80,
110 CLSCTX_ESERVER_HANDLER
= 0x100
113 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
114 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
115 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
117 typedef enum tagMSHLFLAGS
119 MSHLFLAGS_NORMAL
= 0,
120 MSHLFLAGS_TABLESTRONG
= 1,
121 MSHLFLAGS_TABLEWEAK
= 2,
125 typedef enum tagMSHCTX
128 MSHCTX_NOSHAREDMEM
= 1,
129 MSHCTX_DIFFERENTMACHINE
= 2,
133 typedef unsigned short VARTYPE
;
135 typedef ULONG PROPID
;
137 #ifndef _tagBLOB_DEFINED
138 #define _tagBLOB_DEFINED
139 #define _BLOB_DEFINED
140 #define _LPBLOB_DEFINED
141 typedef struct tagBLOB
148 #ifndef _tagCY_DEFINED
149 #define _tagCY_DEFINED
151 typedef union tagCY
{
156 #else /* defined(BIG_ENDIAN) */
159 #endif /* defined(BIG_ENDIAN) */
164 #endif /* _tagCY_DEFINED */
166 typedef struct tagDEC
{
181 #else /* defined(BIG_ENDIAN) */
184 #endif /* defined(BIG_ENDIAN) */
190 #define DECIMAL_NEG ((BYTE)0x80)
191 #ifndef NONAMELESSUNION
192 #define DECIMAL_SETZERO(d) \
193 do {(d).Lo64 = 0; (d).Hi32 = 0; (d).signscale = 0;} while (0)
195 #define DECIMAL_SETZERO(d) \
196 do {(d).u2.Lo64 = 0; (d).Hi32 = 0; (d).u1.signscale = 0;} while (0)
200 * 0 == FALSE and -1 == TRUE
202 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
203 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
204 typedef short VARIANT_BOOL
,_VARIANT_BOOL
;
206 typedef struct tagCLIPDATA
213 /* Macro to calculate the size of the above pClipData */
214 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
220 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
224 DWORD dwHighDateTime
;
225 } FILETIME
, *LPFILETIME
;
226 #endif /* _FILETIME_ */
228 #ifndef _SECURITY_DEFINED
229 #define _SECURITY_DEFINED
233 } SID_IDENTIFIER_AUTHORITY
,*PSID_IDENTIFIER_AUTHORITY
;
235 typedef struct _SID
{
237 BYTE SubAuthorityCount
;
238 SID_IDENTIFIER_AUTHORITY IdentifierAuthority
;
239 DWORD SubAuthority
[1];
246 typedef struct _ACL
{
254 typedef USHORT SECURITY_DESCRIPTOR_CONTROL
, *PSECURITY_DESCRIPTOR_CONTROL
;
256 /* The security descriptor structure */
260 SECURITY_DESCRIPTOR_CONTROL Control
;
265 } SECURITY_DESCRIPTOR
, *PSECURITY_DESCRIPTOR
;
267 #endif /* _SECURITY_DEFINED */
269 #ifndef _ROTFLAGS_DEFINED
270 #define _ROTFLAGS_DEFINED
271 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
272 #define ROTFLAGS_ALLOWANYCLIENT 0x2
273 #endif /* !defined(_ROTFLAGS_DEFINED) */
275 #endif /* __WINE_WTYPES_H */