bff3f3018be147425c6669ccbaa953b90cb4894f
[gpgme.git] / complus / wtypes.h
1 /* wtypes.h - Defines the basic types used by COM interfaces.  
2
3  Copyright (c) 1993-2000 the Wine project authors (see the file WINE-AUTHORS
4  for a complete list)
5  
6  Permission is hereby granted, free of charge, to any person obtaining a copy
7  of this software and associated documentation files (the "Software"), to deal
8  in the Software without restriction, including without limitation the rights
9  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  copies of the Software, and to permit persons to whom the Software is
11  furnished to do so, subject to the following conditions:
12  
13  The above copyright notice and this permission notice shall be included in
14  all copies or substantial portions of the Software.
15  
16  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
19  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22  */
23
24 #ifndef __WINE_WTYPES_H
25 #define __WINE_WTYPES_H
26
27 #include "basetsd.h"
28 #include "guiddef.h"
29 /*#include "rpc.h"*/
30 /*#include "rpcndr.h"*/
31
32 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
33
34 /* FIXME: does not belong here */
35 typedef CHAR            OLECHAR16;
36 typedef LPSTR           LPOLESTR16;
37 typedef LPCSTR          LPCOLESTR16;
38 typedef OLECHAR16       *BSTR16;
39 typedef BSTR16          *LPBSTR16;
40 #define OLESTR16(x) x
41
42 typedef WCHAR           OLECHAR;
43 typedef LPWSTR          LPOLESTR;
44 typedef LPCWSTR         LPCOLESTR;
45 typedef OLECHAR *BSTR;
46 typedef BSTR            *LPBSTR;
47
48 /*
49 #ifndef _DWORDLONG_
50 #define _DWORDLONG_
51 typedef __uint64 DWORDLONG, *PDWORDLONG;
52 #endif
53
54 #ifndef _ULONGLONG_
55 #define _ULONGLONG_
56 typedef __int64 LONGLONG, *PLONGLONG;
57 typedef __uint64 ULONGLONG, *PULONGLONG;
58 #endif
59 */
60
61 #define OLESTR(x) L##x
62
63 typedef enum tagDVASPECT
64
65        DVASPECT_CONTENT   = 1,
66        DVASPECT_THUMBNAIL = 2,
67        DVASPECT_ICON      = 4,   
68        DVASPECT_DOCPRINT  = 8
69 } DVASPECT;
70
71 typedef enum tagSTGC
72 {
73         STGC_DEFAULT = 0,
74         STGC_OVERWRITE = 1,
75         STGC_ONLYIFCURRENT = 2,
76         STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
77         STGC_CONSOLIDATE = 8
78 } STGC;
79
80 typedef enum tagSTGMOVE
81 {   
82         STGMOVE_MOVE = 0,
83         STGMOVE_COPY = 1,
84         STGMOVE_SHALLOWCOPY = 2
85 } STGMOVE;
86
87
88 typedef struct _COAUTHIDENTITY
89 {
90     USHORT* User;
91     ULONG UserLength;
92     USHORT* Domain;
93     ULONG DomainLength;
94     USHORT* Password;
95     ULONG PasswordLength;
96     ULONG Flags;
97 } COAUTHIDENTITY;
98
99 typedef struct _COAUTHINFO
100 {
101     DWORD dwAuthnSvc;
102     DWORD dwAuthzSvc;
103     LPWSTR pwszServerPrincName;
104     DWORD dwAuthnLevel;
105     DWORD dwImpersonationLevel;
106     COAUTHIDENTITY* pAuthIdentityData;
107     DWORD dwCapabilities;
108 } COAUTHINFO;
109
110 typedef struct _COSERVERINFO
111 {
112     DWORD dwReserved1;
113     LPWSTR pwszName;
114     COAUTHINFO* pAuthInfo;
115     DWORD dwReserved2;
116 } COSERVERINFO;
117
118 typedef enum tagCLSCTX
119 {
120     CLSCTX_INPROC_SERVER     = 0x1,
121     CLSCTX_INPROC_HANDLER    = 0x2,
122     CLSCTX_LOCAL_SERVER      = 0x4,
123     CLSCTX_INPROC_SERVER16   = 0x8,
124     CLSCTX_REMOTE_SERVER     = 0x10,
125     CLSCTX_INPROC_HANDLER16  = 0x20,
126     CLSCTX_INPROC_SERVERX86  = 0x40,
127     CLSCTX_INPROC_HANDLERX86 = 0x80,
128     CLSCTX_ESERVER_HANDLER   = 0x100
129 } CLSCTX;
130
131 #define CLSCTX_INPROC           (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
132 #define CLSCTX_ALL              (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
133 #define CLSCTX_SERVER           (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
134
135 typedef enum tagMSHLFLAGS
136 {
137     MSHLFLAGS_NORMAL        = 0,
138     MSHLFLAGS_TABLESTRONG   = 1,
139     MSHLFLAGS_TABLEWEAK     = 2,
140     MSHLFLAGS_NOPING        = 4
141 } MSHLFLAGS;
142
143 typedef enum tagMSHCTX
144 {
145     MSHCTX_LOCAL            = 0,
146     MSHCTX_NOSHAREDMEM      = 1,
147     MSHCTX_DIFFERENTMACHINE = 2,
148     MSHCTX_INPROC           = 3
149 } MSHCTX;
150
151 typedef unsigned short VARTYPE;
152
153 typedef ULONG PROPID;
154
155 /*
156 #ifndef _tagBLOB_DEFINED
157 #define _tagBLOB_DEFINED
158 #define _BLOB_DEFINED
159 #define _LPBLOB_DEFINED
160 typedef struct tagBLOB
161 {
162     ULONG cbSize;
163     BYTE *pBlobData;
164 } BLOB, *LPBLOB;
165 #endif
166 */
167
168 #ifndef _tagCY_DEFINED
169 #define _tagCY_DEFINED
170
171 typedef union tagCY {
172     struct {
173 #ifdef BIG_ENDIAN
174         LONG  Hi;
175         LONG  Lo;
176 #else /* defined(BIG_ENDIAN) */
177         ULONG Lo;
178         LONG  Hi;
179 #endif /* defined(BIG_ENDIAN) */
180     } DUMMYSTRUCTNAME;
181     LONGLONG int64;
182 } CY;
183
184 #endif /* _tagCY_DEFINED */
185
186 /*
187  * 0 == FALSE and -1 == TRUE
188  */
189 #define VARIANT_TRUE     ((VARIANT_BOOL)0xFFFF)
190 #define VARIANT_FALSE    ((VARIANT_BOOL)0x0000)
191 typedef short VARIANT_BOOL,_VARIANT_BOOL;
192
193 typedef struct tagCLIPDATA
194 {
195     ULONG cbSize;
196     long ulClipFmt;
197     BYTE *pClipData;
198 } CLIPDATA;
199
200 /* Macro to calculate the size of the above pClipData */
201 #define CBPCLIPDATA(clipdata)    ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
202
203 typedef LONG SCODE;
204
205 /*
206 #ifndef _FILETIME_
207 #define _FILETIME_
208 */
209 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
210 /*
211 typedef struct
212 {
213   DWORD  dwLowDateTime;
214   DWORD  dwHighDateTime;
215 } FILETIME, *LPFILETIME;
216 #endif 
217 */
218
219 #ifndef _SECURITY_DEFINED
220 #define _SECURITY_DEFINED
221
222 /*
223 typedef struct {
224     BYTE Value[6];
225 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
226
227 typedef struct _SID {
228     BYTE Revision;
229     BYTE SubAuthorityCount;
230     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
231     DWORD SubAuthority[1];
232 } SID,*PSID;
233 */
234 /*
235  * ACL 
236  */
237 /*
238 typedef struct _ACL {
239     BYTE AclRevision;
240     BYTE Sbz1;
241     WORD AclSize;
242     WORD AceCount;
243     WORD Sbz2;
244 } ACL, *PACL;
245
246 typedef DWORD SECURITY_INFORMATION;
247 typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
248 typedef DWORD ACCESS_MASK, *PACCESS_MASK;
249
250 typedef PVOID PGENERIC_MAPPING;
251 */
252 /* The security descriptor structure */
253 /*
254 typedef struct {
255     BYTE Revision;
256     BYTE Sbz1;
257     SECURITY_DESCRIPTOR_CONTROL Control;
258     PSID Owner;
259     PSID Group;
260     PACL Sacl;
261     PACL Dacl;
262 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
263 */
264 #endif /* _SECURITY_DEFINED */
265
266 #ifndef _ROTFLAGS_DEFINED
267 #define _ROTFLAGS_DEFINED
268 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
269 #define ROTFLAGS_ALLOWANYCLIENT 0x2
270 #endif /* !defined(_ROTFLAGS_DEFINED) */
271
272 #endif /* __WINE_WTYPES_H */