[IDL]
[reactos.git] / reactos / include / reactos / idl / ms-dtyp.idl
1 cpp_quote("#ifndef _DTYP_IDL")
2 cpp_quote("#define _DTYP_IDL")
3
4 /* Common data types */
5 cpp_quote("#ifndef _WINDEF_H")
6 typedef int BOOL, *PBOOL, *LPBOOL;
7 typedef unsigned char BYTE, *PBYTE, *LPBYTE;
8 typedef unsigned long DWORD, *PDWORD, *LPDWORD;
9 cpp_quote("#endif")
10 cpp_quote("#ifndef _BASETSD_H_")
11 typedef unsigned int DWORD32;
12 typedef unsigned __int64 DWORD64;
13 cpp_quote("#endif")
14 //typedef unsigned long error_status_t;
15 cpp_quote("#ifndef _WINDEF_H")
16 typedef int INT, *LPINT;
17 cpp_quote("#endif")
18 cpp_quote("#ifndef _BASETSD_H_")
19 typedef signed char INT8;
20 typedef signed short INT16;
21 typedef signed int INT32;
22 typedef signed __int64 INT64;
23 cpp_quote("#endif")
24 cpp_quote("#ifndef _BASETSD_H_")
25 typedef signed int LONG32;
26 typedef signed __int64 LONG64;
27 cpp_quote("#endif")
28 typedef unsigned __int64 QWORD;
29 cpp_quote("#ifndef _WINNT_")
30 typedef short SHORT;
31 cpp_quote("#endif")
32 typedef __int64 TIME;
33 cpp_quote("#ifndef _WINNT_")
34 typedef char CHAR, *PCHAR;
35 typedef unsigned char UCHAR, *PUCHAR;
36 cpp_quote("#endif")
37 cpp_quote("#ifndef _WINDEF_H")
38 typedef unsigned int UINT;
39 cpp_quote("#endif")
40 cpp_quote("#ifndef _BASETSD_H_")
41 typedef unsigned char UINT8;
42 typedef unsigned short UINT16;
43 typedef unsigned int UINT32;
44 typedef unsigned __int64 UINT64;
45 cpp_quote("#endif")
46 cpp_quote("#ifndef _WINNT_")
47 typedef unsigned long ULONG, *PULONG;
48 cpp_quote("#endif")
49 cpp_quote("#ifndef _BASETSD_H_")
50 typedef unsigned int ULONG32;
51 typedef unsigned __int64 ULONG64;
52 cpp_quote("#endif")
53 cpp_quote("#ifndef _WINNT_")
54 typedef unsigned __int64 ULONGLONG;
55 typedef unsigned short USHORT;
56 cpp_quote("#endif")
57 cpp_quote("#ifndef _WINDEF_H")
58 typedef unsigned short WORD, *PWORD, *LPWORD;
59 cpp_quote("#endif")
60 cpp_quote("#ifndef _WINNT_")
61 typedef long LONG, *PLONG;
62 cpp_quote("#endif")
63 cpp_quote("#ifndef _WINDEF_H")
64 typedef long *LPLONG;
65 cpp_quote("#endif")
66 cpp_quote("#ifndef _WINNT_")
67 typedef signed __int64 LONGLONG;
68 cpp_quote("#endif")
69
70 cpp_quote("#ifndef _WINDEF_H")
71 typedef float FLOAT;
72 cpp_quote("#endif")
73 cpp_quote("#ifndef __wtypes_h__")
74 typedef double DOUBLE;
75 cpp_quote("#endif")
76
77 cpp_quote("#ifndef _WINNT_")
78 typedef BYTE BOOLEAN, *PBOOLEAN;
79 cpp_quote("#endif")
80 cpp_quote("#ifndef _BASETSD_H_")
81 #ifdef _WIN64
82 typedef __int64 LONG_PTR;
83 typedef unsigned __int64 ULONG_PTR;
84 #else
85 typedef LONG LONG_PTR;
86 typedef ULONG ULONG_PTR;
87 #endif
88 typedef ULONG_PTR SIZE_T;
89 typedef ULONG_PTR DWORD_PTR;
90 cpp_quote("#endif")
91 typedef DWORD NET_API_STATUS;
92 cpp_quote("#ifndef _WINNT_")
93 typedef ULONGLONG DWORDLONG, *PDWORDLONG;
94 cpp_quote("#endif")
95 typedef DWORD HCALL;
96 //typedef DWORD HRESULT;
97
98 cpp_quote("#ifndef _WINNT_")
99 typedef void *HANDLE;
100 typedef void /*VOID,*/ *PVOID;
101 cpp_quote("#endif")
102 cpp_quote("#ifndef __WINE_RPCDCE_H")
103 typedef void *RPC_BINDING_HANDLE;
104 cpp_quote("#endif")
105 typedef [context_handle] void *PCONTEXT_HANDLE;
106 typedef PCONTEXT_HANDLE *PPCONTEXT_HANDLE;
107
108 cpp_quote("#ifndef _WINNT_")
109 typedef wchar_t WCHAR, *PWCHAR;
110 cpp_quote("#if 0")
111 typedef wchar_t UNICODE;
112 cpp_quote("#endif")
113 typedef const char *LPCSTR;
114 typedef const wchar_t *LPCWSTR;
115 typedef char *PSTR, *LPSTR;
116 typedef wchar_t *LPWSTR, *PWSTR;
117 cpp_quote("#endif")
118 typedef const wchar_t *LMCSTR;
119 typedef WCHAR *LMSTR;
120 cpp_quote("#ifndef __wtypes_h__")
121 typedef WCHAR *BSTR;
122 cpp_quote("#endif")
123
124 cpp_quote("#if 0")
125 #ifdef Unicode
126 typedef LPCWSTR LPCTSTR;
127 typedef LPWSTR LPTSTR;
128 typedef WCHAR TCHAR;
129 #else
130 typedef LPCSTR LPCTSTR;
131 typedef LPSTR LPTSTR;
132 typedef CHAR TCHAR;
133 #endif
134 cpp_quote("#endif")
135
136 /* Common data structures */
137
138 cpp_quote("#if 0")
139
140 typedef struct _FILETIME {
141 DWORD dwLowDateTime;
142 DWORD dwHighDateTime;
143 } FILETIME, *PFILETIME, *LPFILETIME;
144
145 typedef struct _GUID {
146 DWORD Data1;
147 WORD Data2;
148 WORD Data3;
149 BYTE Data4[8];
150 } GUID, UUID, *PGUID;
151
152 typedef struct _LARGE_INTEGER {
153 LONGLONG QuadPart;
154 } LARGE_INTEGER, *PLARGE_INTEGER;
155
156 typedef DWORD LCID;
157
158 cpp_quote("#endif")
159
160 typedef struct _RPC_UNICODE_STRING {
161 USHORT Length;
162 USHORT MaximumLength;
163 [size_is(MaximumLength/2), length_is(Length/2)] LPWSTR Buffer;
164 } RPC_UNICODE_STRING, *PRPC_UNICODE_STRING;
165
166 cpp_quote("#if 0")
167
168 typedef struct _SYSTEMTIME {
169 WORD wYear;
170 WORD wMonth;
171 WORD wDayOfWeek;
172 WORD wDay;
173 WORD wHour;
174 WORD wMinute;
175 WORD wSecond;
176 WORD wMilliseconds;
177 } SYSTEMTIME, *PSYSTEMTIME;
178
179 typedef struct _UINT128 {
180 UINT64 lower;
181 UINT64 upper;
182 } UINT128, *PUINT128;
183
184 typedef struct _ULARGE_INTEGER {
185 ULONGLONG QuadPart;
186 } ULARGE_INTEGER, *PULARGE_INTEGER;
187
188 cpp_quote("#endif")
189
190 /* Constructed security types */
191
192 cpp_quote("#if 0")
193
194 typedef struct _SID_IDENTIFIER_AUTHORITY {
195 BYTE Value[6];
196 } SID_IDENTIFIER_AUTHORITY;
197
198 typedef struct _SID {
199 BYTE Revision;
200 BYTE SubAuthorityCount;
201 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
202 [size_is(SubAuthorityCount)] DWORD SubAuthority[*];
203 } SID, *PSID;
204
205 typedef struct _ACCESS_MASK {
206 DWORD ACCESS_MASK;
207 } ACCESS_MASK, *PACCESS_MASK;
208
209 typedef struct _ACE_HEADER {
210 UCHAR AceType;
211 UCHAR AceFlags;
212 USHORT AceSize;
213 } ACE_HEADER, *PACE_HEADER;
214
215 typedef struct _ACCESS_ALLOWED_ACE {
216 ACE_HEADER Header;
217 ACCESS_MASK Mask;
218 DWORD SidStart;
219 } ACCESS_ALLOWED_ACE, *PACCESS_ALLOWED_ACE;
220
221 typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
222 ACE_HEADER Header;
223 ACCESS_MASK Mask;
224 DWORD Flags;
225 GUID ObjectType;
226 GUID InheritedObjectType;
227 DWORD SidStart;
228 } ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE;
229
230 typedef struct _ACCESS_DENIED_ACE {
231 ACE_HEADER Header;
232 ACCESS_MASK Mask;
233 DWORD SidStart;
234 } ACCESS_DENIED_ACE, *PACCESS_DENIED_ACE;
235
236 typedef struct _ACCESS_ALLOWED_CALLBACK_ACE {
237 ACE_HEADER Header;
238 ACCESS_MASK Mask;
239 DWORD SidStart;
240 } ACCESS_ALLOWED_CALLBACK_ACE, *PACCESS_ALLOWED_CALLBACK_ACE;
241
242 typedef struct _ACCESS_DENIED_CALLBACK_ACE {
243 ACE_HEADER Header;
244 ACCESS_MASK Mask;
245 DWORD SidStart;
246 } ACCESS_DENIED_CALLBACK_ACE, *PACCESS_DENIED_CALLBACK_ACE;
247
248 typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
249 ACE_HEADER Header;
250 ACCESS_MASK Mask;
251 DWORD Flags;
252 GUID ObjectType;
253 GUID InheritedObjectType;
254 DWORD SidStart;
255 } ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
256
257 typedef struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE {
258 ACE_HEADER Header;
259 ACCESS_MASK Mask;
260 DWORD Flags;
261 GUID ObjectType;
262 GUID InheritedObjectType;
263 DWORD SidStart;
264 } ACCESS_DENIED_CALLBACK_OBJECT_ACE, *PACCESS_DENIED_CALLBACK_OBJECT_ACE;
265
266 typedef struct _SYSTEM_AUDIT_ACE {
267 ACE_HEADER Header;
268 ACCESS_MASK Mask;
269 DWORD SidStart;
270 } SYSTEM_AUDIT_ACE, *PSYSTEM_AUDIT_ACE;
271
272 typedef struct _SYSTEM_AUDIT_CALLBACK_ACE {
273 ACE_HEADER Header;
274 ACCESS_MASK Mask;
275 DWORD SidStart;
276 } SYSTEM_AUDIT_CALLBACK_ACE, *PSYSTEM_AUDIT_CALLBACK_ACE;
277
278 typedef struct _SYSTEM_MANDATORY_LABEL_ACE {
279 ACE_HEADER Header;
280 ACCESS_MASK Mask;
281 DWORD SidStart;
282 } SYSTEM_MANDATORY_LABEL_ACE, *PSYSTEM_MANDATORY_LABEL_ACE;
283
284 typedef struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE {
285 ACE_HEADER Header;
286 ACCESS_MASK Mask;
287 DWORD Flags;
288 GUID ObjectType;
289 GUID InheritedObjectType;
290 DWORD SidStart;
291 } SYSTEM_AUDIT_CALLBACK_OBJECT_ACE, *PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE;
292
293 typedef struct _ACL {
294 UCHAR AclRevision;
295 UCHAR Sbz1;
296 USHORT AclSize;
297 USHORT AceCount;
298 USHORT Sbz2;
299 } ACL, *PACL;
300
301 typedef struct _SECURITY_DESCRIPTOR {
302 UCHAR Revision;
303 UCHAR Sbz1;
304 USHORT Control;
305 ULONG Owner;
306 ULONG Group;
307 ULONG Sacl;
308 ULONG Dacl;
309 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
310
311 typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION;
312
313 cpp_quote("#endif")
314
315 typedef struct _RPC_SID {
316 UCHAR Revision;
317 UCHAR SubAuthorityCount;
318 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
319 [size_is(SubAuthorityCount)] DWORD SubAuthority[];
320 } RPC_SID, *PRPC_SID;
321
322 cpp_quote("#endif /* _DTYP_IDL */")