Merged setupx.dll into setupapi.dll.
[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
9 #include "windef.h"
10 #include "rpc.h"
11
12
13 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
14
15 typedef CHAR            OLECHAR16;
16 typedef WCHAR           OLECHAR;
17
18 typedef LPSTR           LPOLESTR16;
19 typedef LPWSTR          LPOLESTR;
20
21 typedef LPCSTR          LPCOLESTR16;
22 typedef LPCWSTR         LPCOLESTR;
23
24 typedef OLECHAR16       *BSTR16;
25 typedef OLECHAR *BSTR;
26
27 typedef BSTR16          *LPBSTR16;
28 typedef BSTR            *LPBSTR;
29
30 #define OLESTR16(x) x
31 #define OLESTR(x) L##x
32
33 #if defined(__cplusplus) && !defined(CINTERFACE)
34 #define REFGUID             const GUID &
35 #define REFCLSID            const CLSID &
36 #define REFIID              const IID &
37 #define REFFMTID            const FMTID &
38 #else /* !defined(__cplusplus) && !defined(CINTERFACE) */
39 #define REFGUID             const GUID* const
40 #define REFCLSID            const CLSID* const
41 #define REFIID              const IID* const
42 #define REFFMTID            const FMTID* const
43 #endif /* !defined(__cplusplus) && !defined(CINTERFACE) */
44
45 extern const IID GUID_NULL;
46 #define IID_NULL            GUID_NULL
47 #define CLSID_NULL GUID_NULL
48 #define FMTID_NULL          GUID_NULL
49    
50 typedef enum tagDVASPECT
51
52        DVASPECT_CONTENT   = 1,
53        DVASPECT_THUMBNAIL = 2,
54        DVASPECT_ICON      = 4,   
55        DVASPECT_DOCPRINT  = 8
56 } DVASPECT;
57
58 typedef enum tagSTGC
59 {
60         STGC_DEFAULT = 0,
61         STGC_OVERWRITE = 1,
62         STGC_ONLYIFCURRENT = 2,
63         STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4
64 } STGC;
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;
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 unsigned short VARTYPE;
113
114 typedef ULONG PROPID;
115
116 #ifndef _tagBLOB_DEFINED
117 #define _tagBLOB_DEFINED
118 #define _BLOB_DEFINED
119 #define _LPBLOB_DEFINED
120 typedef struct tagBLOB
121 {
122     ULONG cbSize;
123     BYTE *pBlobData;
124 } BLOB, *LPBLOB;
125 #endif
126
127 #ifndef _tagCY_DEFINED
128 #define _tagCY_DEFINED
129
130 typedef union tagCY {
131     struct {
132 #ifdef BIG_ENDIAN
133         LONG  Hi;
134         LONG  Lo;
135 #else /* defined(BIG_ENDIAN) */
136         ULONG Lo;
137         LONG  Hi;
138 #endif /* defined(BIG_ENDIAN) */
139     } DUMMYSTRUCTNAME;
140     LONGLONG int64;
141 } CY;
142
143 #endif /* _tagCY_DEFINED */
144
145 /*
146  * 0 == FALSE and -1 == TRUE
147  */
148 #define VARIANT_TRUE     ((VARIANT_BOOL)0xFFFF)
149 #define VARIANT_FALSE    ((VARIANT_BOOL)0x0000)
150 typedef short VARIANT_BOOL,_VARIANT_BOOL;
151
152 typedef struct tagCLIPDATA
153 {
154     ULONG cbSize;
155     long ulClipFmt;
156     BYTE *pClipData;
157 } CLIPDATA;
158
159 /* Macro to calculate the size of the above pClipData */
160 #define CBPCLIPDATA(clipdata)    ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
161
162 typedef LONG SCODE;
163
164 #ifndef _FILETIME_
165 #define _FILETIME_
166 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
167 typedef struct
168 {
169   DWORD  dwLowDateTime;
170   DWORD  dwHighDateTime;
171 } FILETIME, *LPFILETIME;
172 #endif /* _FILETIME_ */
173
174 #ifndef _SECURITY_DEFINED
175 #define _SECURITY_DEFINED
176
177 typedef struct {
178     BYTE Value[6];
179 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
180
181 typedef struct _SID {
182     BYTE Revision;
183     BYTE SubAuthorityCount;
184     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
185     DWORD SubAuthority[1];
186 } SID,*PSID;
187
188 /*
189  * ACL 
190  */
191
192 typedef struct _ACL {
193     BYTE AclRevision;
194     BYTE Sbz1;
195     WORD AclSize;
196     WORD AceCount;
197     WORD Sbz2;
198 } ACL, *PACL;
199
200 typedef DWORD SECURITY_INFORMATION;
201 typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
202 typedef DWORD ACCESS_MASK, *PACCESS_MASK;
203
204 typedef PVOID PGENERIC_MAPPING;
205
206 /* The security descriptor structure */
207 typedef struct {
208     BYTE Revision;
209     BYTE Sbz1;
210     SECURITY_DESCRIPTOR_CONTROL Control;
211     PSID Owner;
212     PSID Group;
213     PACL Sacl;
214     PACL Dacl;
215 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
216
217 #ifndef _ROTFLAGS_DEFINED
218 #define _ROTFLAGS_DEFINED
219 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
220 #define ROTFLAGS_ALLOWANYCLIENT 0x2
221 #endif /* !defined(_ROTFLAGS_DEFINED) */
222
223 #endif /* _SECURITY_DEFINED */
224
225
226 #endif /* __WINE_WTYPES_H */