:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / include / ole32 / wtypes.h
1 /*
2  * Defines the basic types used by COM interfaces.
3  */
4
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_H
7
8 #if 0
9 #include "basetsd.h"
10 #include "guiddef.h"
11 #include "rpc.h"
12 #include "rpcndr.h"
13 #endif
14 #include <base.h>
15 #include <ntos/types.h>
16 #include <ole32/guiddef.h>
17
18
19 typedef void* HMETAFILEPICT;
20
21 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
22
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;
29 #define OLESTR16(x) x
30
31 typedef WCHAR           OLECHAR;
32 typedef LPWSTR          LPOLESTR;
33 typedef LPCWSTR         LPCOLESTR;
34 typedef OLECHAR        *BSTR;
35 typedef BSTR           *LPBSTR;
36 #ifndef __WINE__
37 #define OLESTR(str)     WINE_UNICODE_TEXT(str)
38 #endif
39
40 typedef enum tagDVASPECT
41
42        DVASPECT_CONTENT   = 1,
43        DVASPECT_THUMBNAIL = 2,
44        DVASPECT_ICON      = 4,   
45        DVASPECT_DOCPRINT  = 8
46 } DVASPECT;
47
48 typedef enum tagSTGC
49 {
50         STGC_DEFAULT = 0,
51         STGC_OVERWRITE = 1,
52         STGC_ONLYIFCURRENT = 2,
53         STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
54         STGC_CONSOLIDATE = 8
55 } STGC;
56
57 typedef enum tagSTGMOVE
58 {   
59         STGMOVE_MOVE = 0,
60         STGMOVE_COPY = 1,
61         STGMOVE_SHALLOWCOPY = 2
62 } STGMOVE;
63
64
65 typedef struct _COAUTHIDENTITY
66 {
67     USHORT* User;
68     ULONG UserLength;
69     USHORT* Domain;
70     ULONG DomainLength;
71     USHORT* Password;
72     ULONG PasswordLength;
73     ULONG Flags;
74 } COAUTHIDENTITY;
75
76 typedef struct _COAUTHINFO
77 {
78     DWORD dwAuthnSvc;
79     DWORD dwAuthzSvc;
80     LPWSTR pwszServerPrincName;
81     DWORD dwAuthnLevel;
82     DWORD dwImpersonationLevel;
83     COAUTHIDENTITY* pAuthIdentityData;
84     DWORD dwCapabilities;
85 } COAUTHINFO;
86
87 typedef struct _COSERVERINFO
88 {
89     DWORD dwReserved1;
90     LPWSTR pwszName;
91     COAUTHINFO* pAuthInfo;
92     DWORD dwReserved2;
93 } COSERVERINFO;
94
95 typedef enum tagCLSCTX
96 {
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
106 } CLSCTX;
107
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)
111
112 typedef enum tagMSHLFLAGS
113 {
114     MSHLFLAGS_NORMAL        = 0,
115     MSHLFLAGS_TABLESTRONG   = 1,
116     MSHLFLAGS_TABLEWEAK     = 2,
117     MSHLFLAGS_NOPING        = 4
118 } MSHLFLAGS;
119
120 typedef enum tagMSHCTX
121 {
122     MSHCTX_LOCAL            = 0,
123     MSHCTX_NOSHAREDMEM      = 1,
124     MSHCTX_DIFFERENTMACHINE = 2,
125     MSHCTX_INPROC           = 3
126 } MSHCTX;
127
128 typedef unsigned short VARTYPE;
129
130 typedef ULONG PROPID;
131
132 #ifndef _tagCY_DEFINED
133 #define _tagCY_DEFINED
134
135 typedef union tagCY {
136     struct {
137 #ifdef BIG_ENDIAN
138         LONG  Hi;
139         LONG  Lo;
140 #else /* defined(BIG_ENDIAN) */
141         ULONG Lo;
142         LONG  Hi;
143 #endif /* defined(BIG_ENDIAN) */
144     } DUMMYSTRUCTNAME;
145     LONGLONG int64;
146 } CY;
147
148 #endif /* _tagCY_DEFINED */
149
150 typedef struct tagDEC {
151     USHORT wReserved;
152     union {
153         struct {
154             BYTE scale;
155             BYTE sign;
156         } DUMMYSTRUCTNAME1;
157         USHORT signscale;
158     } DUMMYUNIONNAME1;
159     ULONG Hi32;
160     union {
161         struct {
162 #ifdef BIG_ENDIAN
163             ULONG Mid32;
164             ULONG Lo32;
165 #else /* defined(BIG_ENDIAN) */
166             ULONG Lo32;
167             ULONG Mid32;
168 #endif /* defined(BIG_ENDIAN) */
169         } DUMMYSTRUCTNAME2;
170         ULONGLONG Lo64;
171     } DUMMYUNIONNAME2;
172 } DECIMAL;
173
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)
178 #else
179 #define DECIMAL_SETZERO(d) \
180         do {(d).u2.Lo64 = 0; (d).Hi32 = 0; (d).u1.signscale = 0;} while (0)
181 #endif
182
183 /*
184  * 0 == FALSE and -1 == TRUE
185  */
186 #define VARIANT_TRUE     ((VARIANT_BOOL)0xFFFF)
187 #define VARIANT_FALSE    ((VARIANT_BOOL)0x0000)
188 typedef short VARIANT_BOOL,_VARIANT_BOOL;
189
190 typedef struct tagCLIPDATA
191 {
192     ULONG cbSize;
193     long ulClipFmt;
194     BYTE *pClipData;
195 } CLIPDATA;
196
197 /* Macro to calculate the size of the above pClipData */
198 #define CBPCLIPDATA(clipdata)    ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
199
200 typedef LONG SCODE;
201
202 #ifndef _ROTFLAGS_DEFINED
203 #define _ROTFLAGS_DEFINED
204 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
205 #define ROTFLAGS_ALLOWANYCLIENT 0x2
206 #endif /* !defined(_ROTFLAGS_DEFINED) */
207
208 #endif /* __WINE_WTYPES_H */