2 * Defines the basic types used by COM interfaces.
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_H
15 #include <ntos/types.h>
16 #include <ole32/guiddef.h>
19 typedef void* HMETAFILEPICT;
21 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
23 /* FIXME: does not belong here */
24 typedef CHAR OLECHAR16;
25 typedef LPSTR LPOLESTR16;
26 typedef LPCSTR LPCOLESTR16;
27 typedef OLECHAR16 *BSTR16;
28 typedef BSTR16 *LPBSTR16;
31 typedef WCHAR OLECHAR;
32 typedef LPWSTR LPOLESTR;
33 typedef LPCWSTR LPCOLESTR;
34 typedef OLECHAR *BSTR;
37 #define OLESTR(str) WINE_UNICODE_TEXT(str)
40 typedef enum tagDVASPECT
43 DVASPECT_THUMBNAIL = 2,
52 STGC_ONLYIFCURRENT = 2,
53 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
57 typedef enum tagSTGMOVE
61 STGMOVE_SHALLOWCOPY = 2
65 typedef struct _COAUTHIDENTITY
76 typedef struct _COAUTHINFO
80 LPWSTR pwszServerPrincName;
82 DWORD dwImpersonationLevel;
83 COAUTHIDENTITY* pAuthIdentityData;
87 typedef struct _COSERVERINFO
91 COAUTHINFO* pAuthInfo;
95 typedef enum tagCLSCTX
97 CLSCTX_INPROC_SERVER = 0x1,
98 CLSCTX_INPROC_HANDLER = 0x2,
99 CLSCTX_LOCAL_SERVER = 0x4,
100 CLSCTX_INPROC_SERVER16 = 0x8,
101 CLSCTX_REMOTE_SERVER = 0x10,
102 CLSCTX_INPROC_HANDLER16 = 0x20,
103 CLSCTX_INPROC_SERVERX86 = 0x40,
104 CLSCTX_INPROC_HANDLERX86 = 0x80,
105 CLSCTX_ESERVER_HANDLER = 0x100
108 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
109 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
110 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
112 typedef enum tagMSHLFLAGS
114 MSHLFLAGS_NORMAL = 0,
115 MSHLFLAGS_TABLESTRONG = 1,
116 MSHLFLAGS_TABLEWEAK = 2,
120 typedef enum tagMSHCTX
123 MSHCTX_NOSHAREDMEM = 1,
124 MSHCTX_DIFFERENTMACHINE = 2,
128 typedef unsigned short VARTYPE;
130 typedef ULONG PROPID;
132 #ifndef _tagCY_DEFINED
133 #define _tagCY_DEFINED
135 typedef union tagCY {
140 #else /* defined(BIG_ENDIAN) */
143 #endif /* defined(BIG_ENDIAN) */
148 #endif /* _tagCY_DEFINED */
150 typedef struct tagDEC {
165 #else /* defined(BIG_ENDIAN) */
168 #endif /* defined(BIG_ENDIAN) */
174 #define DECIMAL_NEG ((BYTE)0x80)
175 #ifndef NONAMELESSUNION
176 #define DECIMAL_SETZERO(d) \
177 do {(d).Lo64 = 0; (d).Hi32 = 0; (d).signscale = 0;} while (0)
179 #define DECIMAL_SETZERO(d) \
180 do {(d).u2.Lo64 = 0; (d).Hi32 = 0; (d).u1.signscale = 0;} while (0)
184 * 0 == FALSE and -1 == TRUE
186 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
187 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
188 typedef short VARIANT_BOOL,_VARIANT_BOOL;
190 typedef struct tagCLIPDATA
197 /* Macro to calculate the size of the above pClipData */
198 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
202 #ifndef _ROTFLAGS_DEFINED
203 #define _ROTFLAGS_DEFINED
204 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
205 #define ROTFLAGS_ALLOWANYCLIENT 0x2
206 #endif /* !defined(_ROTFLAGS_DEFINED) */
208 #endif /* __WINE_WTYPES_H */