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