Moved HRASCONN from windef.h.
[wine] / include / 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 #include "basetsd.h"
9 #include "guiddef.h"
10 #include "rpc.h"
11 #include "rpcndr.h"
12
13 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
14
15 /* FIXME: does not belong here */
16 typedef CHAR            OLECHAR16;
17 typedef LPSTR           LPOLESTR16;
18 typedef LPCSTR          LPCOLESTR16;
19 typedef OLECHAR16       *BSTR16;
20 typedef BSTR16          *LPBSTR16;
21 #define OLESTR16(x) x
22
23 typedef WCHAR           OLECHAR;
24 typedef LPWSTR          LPOLESTR;
25 typedef LPCWSTR         LPCOLESTR;
26 typedef OLECHAR        *BSTR;
27 typedef BSTR           *LPBSTR;
28 #ifndef __WINE__
29 #define OLESTR(str)     WINE_UNICODE_TEXT(str)
30 #endif
31
32 #ifndef _DWORDLONG_
33 #define _DWORDLONG_
34 typedef __uint64 DWORDLONG, *PDWORDLONG;
35 #endif
36
37 #ifndef _ULONGLONG_
38 #define _ULONGLONG_
39 typedef __int64 LONGLONG, *PLONGLONG;
40 typedef __uint64 ULONGLONG, *PULONGLONG;
41 #endif
42
43 typedef enum tagDVASPECT
44
45        DVASPECT_CONTENT   = 1,
46        DVASPECT_THUMBNAIL = 2,
47        DVASPECT_ICON      = 4,   
48        DVASPECT_DOCPRINT  = 8
49 } DVASPECT;
50
51 typedef enum tagSTGC
52 {
53         STGC_DEFAULT = 0,
54         STGC_OVERWRITE = 1,
55         STGC_ONLYIFCURRENT = 2,
56         STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
57         STGC_CONSOLIDATE = 8
58 } STGC;
59
60 typedef enum tagSTGMOVE
61 {   
62         STGMOVE_MOVE = 0,
63         STGMOVE_COPY = 1,
64         STGMOVE_SHALLOWCOPY = 2
65 } STGMOVE;
66
67
68 typedef struct _COAUTHIDENTITY
69 {
70     USHORT* User;
71     ULONG UserLength;
72     USHORT* Domain;
73     ULONG DomainLength;
74     USHORT* Password;
75     ULONG PasswordLength;
76     ULONG Flags;
77 } COAUTHIDENTITY;
78
79 typedef struct _COAUTHINFO
80 {
81     DWORD dwAuthnSvc;
82     DWORD dwAuthzSvc;
83     LPWSTR pwszServerPrincName;
84     DWORD dwAuthnLevel;
85     DWORD dwImpersonationLevel;
86     COAUTHIDENTITY* pAuthIdentityData;
87     DWORD dwCapabilities;
88 } COAUTHINFO;
89
90 typedef struct _COSERVERINFO
91 {
92     DWORD dwReserved1;
93     LPWSTR pwszName;
94     COAUTHINFO* pAuthInfo;
95     DWORD dwReserved2;
96 } COSERVERINFO;
97
98 typedef enum tagCLSCTX
99 {
100     CLSCTX_INPROC_SERVER     = 0x1,
101     CLSCTX_INPROC_HANDLER    = 0x2,
102     CLSCTX_LOCAL_SERVER      = 0x4,
103     CLSCTX_INPROC_SERVER16   = 0x8,
104     CLSCTX_REMOTE_SERVER     = 0x10,
105     CLSCTX_INPROC_HANDLER16  = 0x20,
106     CLSCTX_INPROC_SERVERX86  = 0x40,
107     CLSCTX_INPROC_HANDLERX86 = 0x80,
108     CLSCTX_ESERVER_HANDLER   = 0x100
109 } CLSCTX;
110
111 #define CLSCTX_INPROC           (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
112 #define CLSCTX_ALL              (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
113 #define CLSCTX_SERVER           (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
114
115 typedef enum tagMSHLFLAGS
116 {
117     MSHLFLAGS_NORMAL        = 0,
118     MSHLFLAGS_TABLESTRONG   = 1,
119     MSHLFLAGS_TABLEWEAK     = 2,
120     MSHLFLAGS_NOPING        = 4
121 } MSHLFLAGS;
122
123 typedef enum tagMSHCTX
124 {
125     MSHCTX_LOCAL            = 0,
126     MSHCTX_NOSHAREDMEM      = 1,
127     MSHCTX_DIFFERENTMACHINE = 2,
128     MSHCTX_INPROC           = 3
129 } MSHCTX;
130
131 typedef unsigned short VARTYPE;
132
133 typedef ULONG PROPID;
134
135 #ifndef _tagBLOB_DEFINED
136 #define _tagBLOB_DEFINED
137 #define _BLOB_DEFINED
138 #define _LPBLOB_DEFINED
139 typedef struct tagBLOB
140 {
141     ULONG cbSize;
142     BYTE *pBlobData;
143 } BLOB, *LPBLOB;
144 #endif
145
146 #ifndef _tagCY_DEFINED
147 #define _tagCY_DEFINED
148
149 typedef union tagCY {
150     struct {
151 #ifdef BIG_ENDIAN
152         LONG  Hi;
153         LONG  Lo;
154 #else /* defined(BIG_ENDIAN) */
155         ULONG Lo;
156         LONG  Hi;
157 #endif /* defined(BIG_ENDIAN) */
158     } DUMMYSTRUCTNAME;
159     LONGLONG int64;
160 } CY;
161
162 #endif /* _tagCY_DEFINED */
163
164 /*
165  * 0 == FALSE and -1 == TRUE
166  */
167 #define VARIANT_TRUE     ((VARIANT_BOOL)0xFFFF)
168 #define VARIANT_FALSE    ((VARIANT_BOOL)0x0000)
169 typedef short VARIANT_BOOL,_VARIANT_BOOL;
170
171 typedef struct tagCLIPDATA
172 {
173     ULONG cbSize;
174     long ulClipFmt;
175     BYTE *pClipData;
176 } CLIPDATA;
177
178 /* Macro to calculate the size of the above pClipData */
179 #define CBPCLIPDATA(clipdata)    ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
180
181 typedef LONG SCODE;
182
183 #ifndef _FILETIME_
184 #define _FILETIME_
185 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
186 typedef struct
187 {
188   DWORD  dwLowDateTime;
189   DWORD  dwHighDateTime;
190 } FILETIME, *LPFILETIME;
191 #endif /* _FILETIME_ */
192
193 #ifndef _SECURITY_DEFINED
194 #define _SECURITY_DEFINED
195
196 typedef struct {
197     BYTE Value[6];
198 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
199
200 typedef struct _SID {
201     BYTE Revision;
202     BYTE SubAuthorityCount;
203     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
204     DWORD SubAuthority[1];
205 } SID,*PSID;
206
207 /*
208  * ACL 
209  */
210
211 typedef struct _ACL {
212     BYTE AclRevision;
213     BYTE Sbz1;
214     WORD AclSize;
215     WORD AceCount;
216     WORD Sbz2;
217 } ACL, *PACL;
218
219 typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
220
221 /* The security descriptor structure */
222 typedef struct {
223     BYTE Revision;
224     BYTE Sbz1;
225     SECURITY_DESCRIPTOR_CONTROL Control;
226     PSID Owner;
227     PSID Group;
228     PACL Sacl;
229     PACL Dacl;
230 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
231
232 #endif /* _SECURITY_DEFINED */
233
234 #ifndef _ROTFLAGS_DEFINED
235 #define _ROTFLAGS_DEFINED
236 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
237 #define ROTFLAGS_ALLOWANYCLIENT 0x2
238 #endif /* !defined(_ROTFLAGS_DEFINED) */
239
240 #endif /* __WINE_WTYPES_H */