]> git.proxmox.com Git - rustc.git/blame - vendor/winapi/src/shared/wtypes.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / vendor / winapi / src / shared / wtypes.rs
CommitLineData
ff7c6d11
XL
1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
60c5eb7d
XL
6use ctypes::{__int64, c_double, c_short, c_ushort, c_void, wchar_t};
7use shared::guiddef::{CLSID, GUID};
ff7c6d11 8use shared::minwindef::{BYTE, DWORD, ULONG, USHORT, WORD};
60c5eb7d
XL
9use shared::ntdef::{LCID, LONG, LONGLONG, ULONGLONG};
10use shared::rpcndr::byte;
11use shared::wtypesbase::{
12 BYTE_BLOB, DWORD_BLOB, FLAGGED_BYTE_BLOB, FLAGGED_WORD_BLOB, LPOLESTR, OLECHAR
13};
14use um::wingdi::LOGPALETTE;
15// extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0000_v0_0_c_ifspec;
16// extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0000_v0_0_s_ifspec;
17STRUCT!{struct RemHGLOBAL {
18 fNullHGlobal: LONG,
19 cbData: ULONG,
20 data: [byte; 1],
21}}
22STRUCT!{struct RemHMETAFILEPICT {
23 mm: LONG,
24 xExt: LONG,
25 yExt: LONG,
26 cbData: ULONG,
27 data: [byte; 1],
28}}
29STRUCT!{struct RemHENHMETAFILE {
30 cbData: ULONG,
31 data: [byte; 1],
32}}
33STRUCT!{struct RemHBITMAP {
34 cbData: ULONG,
35 data: [byte; 1],
36}}
37STRUCT!{struct RemHPALETTE {
38 cbData: ULONG,
39 data: [byte; 1],
40}}
41STRUCT!{struct RemHBRUSH {
42 cbData: ULONG,
43 data: [byte; 1],
44}}
45pub const ROTFLAGS_REGISTRATIONKEEPSALIVE: DWORD = 0x1;
46pub const ROTFLAGS_ALLOWANYCLIENT: DWORD = 0x2;
47pub const ROT_COMPARE_MAX: DWORD = 2048;
48ENUM!{enum DVASPECT {
49 DVASPECT_CONTENT = 1,
50 DVASPECT_THUMBNAIL = 2,
51 DVASPECT_ICON = 4,
52 DVASPECT_DOCPRINT = 8,
53}}
54ENUM!{enum STGC {
55 STGC_DEFAULT = 0,
56 STGC_OVERWRITE = 1,
57 STGC_ONLYIFCURRENT = 2,
58 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
59 STGC_CONSOLIDATE = 8,
60}}
61ENUM!{enum STGMOVE {
62 STGMOVE_MOVE = 0,
63 STGMOVE_COPY = 1,
64 STGMOVE_SHALLOWCOPY = 2,
65}}
66ENUM!{enum STATFLAG {
67 STATFLAG_DEFAULT = 0,
68 STATFLAG_NONAME = 1,
69 STATFLAG_NOOPEN = 2,
70}}
71pub type HCONTEXT = *mut c_void;
72pub const WDT_INPROC_CALL: ULONG = 0x48746457;
73pub const WDT_REMOTE_CALL: ULONG = 0x52746457;
74pub const WDT_INPROC64_CALL: ULONG = 0x50746457;
75UNION!{union userCLIPFORMAT_u {
76 [usize; 1],
77 dwValue dwValue_mut: DWORD,
78 pwszName pwszName_mut: *mut wchar_t,
79}}
80STRUCT!{struct userCLIPFORMAT {
81 fContext: LONG,
82 u: userCLIPFORMAT_u,
83}}
84pub type wireCLIPFORMAT = *mut userCLIPFORMAT;
85pub type CLIPFORMAT = WORD;
86UNION!{union GDI_NONREMOTE_u {
87 [usize; 1],
88 hInproc hInproc_mut: LONG,
89 hRemote hRemote_mut: *mut DWORD_BLOB,
90}}
91STRUCT!{struct GDI_NONREMOTE {
92 fContext: LONG,
93 u: GDI_NONREMOTE_u,
94}}
95UNION!{union userHGLOBAL_u {
96 [u64; 1],
97 hInproc hInproc_mut: LONG,
98 hRemote hRemote_mut: *mut FLAGGED_BYTE_BLOB,
99 hInproc64 hInproc64_mut: __int64,
100}}
101STRUCT!{struct userHGLOBAL {
102 fContext: LONG,
103 u: userHGLOBAL_u,
104}}
105pub type wireHGLOBAL = *mut userHGLOBAL;
106UNION!{union userHMETAFILE_u {
107 [u64; 1],
108 hInproc hInproc_mut: LONG,
109 hRemote hRemote_mut: *mut BYTE_BLOB,
110 hInproc64 hInproc64_mut: __int64,
111}}
112STRUCT!{struct userHMETAFILE {
113 fContext: LONG,
114 u: userHMETAFILE_u,
115}}
116STRUCT!{struct remoteMETAFILEPICT {
117 mm: LONG,
118 xExt: LONG,
119 yExt: LONG,
120 hMF: *mut userHMETAFILE,
121}}
122UNION!{union userHMETAFILEPICT_u {
123 [u64; 1],
124 hInproc hInproc_mut: LONG,
125 hRemote hRemote_mut: *mut remoteMETAFILEPICT,
126 hInproc64 hInproc64_mut: __int64,
127}}
128STRUCT!{struct userHMETAFILEPICT {
129 fContext: LONG,
130 u: userHMETAFILEPICT_u,
131}}
132UNION!{union userHENHMETAFILE_u {
133 [u64; 1],
134 hInproc hInproc_mut: LONG,
135 hRemote hRemote_mut: *mut BYTE_BLOB,
136 hInproc64 hInproc64_mut: __int64,
137}}
138STRUCT!{struct userHENHMETAFILE {
139 fContext: LONG,
140 u: userHENHMETAFILE_u,
141}}
142STRUCT!{struct userBITMAP {
143 bmType: LONG,
144 bmWidth: LONG,
145 bmHeight: LONG,
146 bmWidthBytes: LONG,
147 bmPlanes: WORD,
148 bmBitsPixel: WORD,
149 cbSize: ULONG,
150 pBuffer: [byte; 1],
151}}
152UNION!{union userHBITMAP_u {
153 [u64; 1],
154 hInproc hInproc_mut: LONG,
155 hRemote hRemote_mut: *mut userBITMAP,
156 hInproc64 hInproc64_mut: __int64,
157}}
158STRUCT!{struct userHBITMAP {
159 fContext: LONG,
160 u: userHBITMAP_u,
161}}
162UNION!{union userHPALETTE_u {
163 [u64; 1],
164 hInproc hInproc_mut: LONG,
165 hRemote hRemote_mut: *mut LOGPALETTE,
166 hInproc64 hInproc64_mut: __int64,
167}}
168STRUCT!{struct userHPALETTE {
169 fContext: LONG,
170 u: userHPALETTE_u,
171}}
172UNION!{union RemotableHandle_u {
173 [u32; 1],
174 hInproc hInproc_mut: LONG,
175 hRemote hRemote_mut: LONG,
176}}
177STRUCT!{struct RemotableHandle {
178 fContext: LONG,
179 u: RemotableHandle_u,
180}}
181pub type wireHWND = *mut RemotableHandle;
182pub type wireHMENU = *mut RemotableHandle;
183pub type wireHACCEL = *mut RemotableHandle;
184pub type wireHBRUSH = *mut RemotableHandle;
185pub type wireHFONT = *mut RemotableHandle;
186pub type wireHDC = *mut RemotableHandle;
187pub type wireHICON = *mut RemotableHandle;
188pub type wireHRGN = *mut RemotableHandle;
189pub type wireHMONITOR = *mut RemotableHandle;
190pub type wireHBITMAP = *mut userHBITMAP;
191pub type wireHPALETTE = *mut userHPALETTE;
192pub type wireHENHMETAFILE = *mut userHENHMETAFILE;
193pub type wireHMETAFILE = *mut userHMETAFILE;
194pub type wireHMETAFILEPICT = *mut userHMETAFILEPICT;
195pub type HMETAFILEPICT = *mut c_void;
196// extern RPC_IF_HANDLE IWinTypes_v0_1_c_ifspec;
197// extern RPC_IF_HANDLE IWinTypes_v0_1_s_ifspec;
198pub type DATE = c_double;
199STRUCT!{struct CY {
200 int64: LONGLONG,
201}}
202pub type LPCY = *mut CY;
203STRUCT!{struct DECIMAL {
204 wReserved: USHORT,
205 scale: BYTE,
206 sign: BYTE,
207 Hi32: ULONG,
208 Lo64: ULONGLONG,
209}}
210pub const DECIMAL_NEG: BYTE = 0x80;
211#[inline]
212pub fn DECIMAL_SETZERO(dec: &mut DECIMAL) {
213 dec.Lo64 = 0;
214 dec.Hi32 = 0;
215 dec.scale = 0;
216 dec.sign = 0;
217}
218pub type LPDECIMAL = *mut DECIMAL;
219pub type wireBSTR = *mut FLAGGED_WORD_BLOB;
220pub type BSTR = *mut OLECHAR;
221pub type LPBSTR = *mut BSTR;
222pub type VARIANT_BOOL = c_short;
223STRUCT!{struct BSTRBLOB {
224 cbSize: ULONG,
225 pData: *mut BYTE,
226}}
227pub type LPBSTRBLOB = *mut BSTRBLOB;
228pub const VARIANT_TRUE: VARIANT_BOOL = -1;
229pub const VARIANT_FALSE: VARIANT_BOOL = 0;
230STRUCT!{struct CLIPDATA {
231 cbSize: ULONG,
232 ulClipFmt: LONG,
233 pClipData: *mut BYTE,
234}}
235#[inline]
236pub fn CBPCLIPDATA(clipdata: CLIPDATA) -> ULONG {
237 clipdata.cbSize - 4
238}
239pub type VARTYPE = c_ushort;
ff7c6d11
XL
240ENUM!{enum VARENUM {
241 VT_EMPTY = 0,
242 VT_NULL = 1,
243 VT_I2 = 2,
244 VT_I4 = 3,
245 VT_R4 = 4,
246 VT_R8 = 5,
247 VT_CY = 6,
248 VT_DATE = 7,
249 VT_BSTR = 8,
250 VT_DISPATCH = 9,
251 VT_ERROR = 10,
252 VT_BOOL = 11,
253 VT_VARIANT = 12,
254 VT_UNKNOWN = 13,
255 VT_DECIMAL = 14,
256 VT_I1 = 16,
257 VT_UI1 = 17,
258 VT_UI2 = 18,
259 VT_UI4 = 19,
260 VT_I8 = 20,
261 VT_UI8 = 21,
262 VT_INT = 22,
263 VT_UINT = 23,
264 VT_VOID = 24,
265 VT_HRESULT = 25,
266 VT_PTR = 26,
267 VT_SAFEARRAY = 27,
268 VT_CARRAY = 28,
269 VT_USERDEFINED = 29,
270 VT_LPSTR = 30,
271 VT_LPWSTR = 31,
272 VT_RECORD = 36,
273 VT_INT_PTR = 37,
274 VT_UINT_PTR = 38,
275 VT_FILETIME = 64,
276 VT_BLOB = 65,
277 VT_STREAM = 66,
278 VT_STORAGE = 67,
279 VT_STREAMED_OBJECT = 68,
280 VT_STORED_OBJECT = 69,
281 VT_BLOB_OBJECT = 70,
282 VT_CF = 71,
283 VT_CLSID = 72,
284 VT_VERSIONED_STREAM = 73,
285 VT_BSTR_BLOB = 0xfff,
286 VT_VECTOR = 0x1000,
287 VT_ARRAY = 0x2000,
288 VT_BYREF = 0x4000,
289 VT_RESERVED = 0x8000,
290 VT_ILLEGAL = 0xffff,
60c5eb7d
XL
291 VT_ILLEGALMASKED = 0xfff,
292 VT_TYPEMASK = 0xfff,
ff7c6d11 293}}
ff7c6d11
XL
294pub type PROPID = ULONG;
295STRUCT!{struct PROPERTYKEY {
296 fmtid: GUID,
297 pid: DWORD,
298}}
60c5eb7d
XL
299STRUCT!{struct CSPLATFORM {
300 dwPlatformId: DWORD,
301 dwVersionHi: DWORD,
302 dwVersionLo: DWORD,
303 dwProcessorArch: DWORD,
ff7c6d11 304}}
60c5eb7d
XL
305STRUCT!{struct QUERYCONTEXT {
306 dwContext: DWORD,
307 Platform: CSPLATFORM,
308 Locale: LCID,
309 dwVersionHi: DWORD,
310 dwVersionLo: DWORD,
ff7c6d11 311}}
60c5eb7d
XL
312ENUM!{enum TYSPEC {
313 TYSPEC_CLSID,
314 TYSPEC_FILEEXT,
315 TYSPEC_MIMETYPE,
316 TYSPEC_FILENAME,
317 TYSPEC_PROGID,
318 TYSPEC_PACKAGENAME,
319 TYSPEC_OBJECTID,
ff7c6d11 320}}
60c5eb7d
XL
321STRUCT!{struct uCLSSPEC_ByName {
322 pPackageName: LPOLESTR,
323 PolicyId: GUID,
ff7c6d11 324}}
60c5eb7d
XL
325STRUCT!{struct uCLSSPEC_ByObjectId {
326 ObjectId: GUID,
327 PolicyId: GUID,
328}}
329UNION!{union uCLSSPEC_u {
330 [u32; 8] [u64; 4],
331 clsid clsid_mut: CLSID,
332 pFileExt pFileExt_mut: LPOLESTR,
333 pMimeType pMimeType_mut: LPOLESTR,
334 pProgId pProgId_mut: LPOLESTR,
335 pFileName pFileName_mut: LPOLESTR,
336 ByName ByName_mut: uCLSSPEC_ByName,
337 ByObjectId ByObjectId_mut: uCLSSPEC_ByObjectId,
338}}
339STRUCT!{struct uCLSSPEC {
340 tyspec: DWORD,
341 u: uCLSSPEC_u,
342}}
343// extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0001_v0_0_c_ifspec;
344// extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0001_v0_0_s_ifspec;