1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 //! Types and constants for WinAPI bindings.
4 #![allow(bad_style)]
5 #![warn(trivial_casts, trivial_numeric_casts)]
6 #![warn(unused_qualifications, unused)]
7 #![cfg(windows)]
8 //-------------------------------------------------------------------------------------------------
9 // Imports
10 //-------------------------------------------------------------------------------------------------
11 pub use std::os::raw::{
12     c_void,
13     c_char,
14     c_schar,
15     c_uchar,
16     c_short,
17     c_ushort,
18     c_int,
19     c_uint,
20     c_long,
21     c_ulong,
22     c_longlong,
23     c_ulonglong,
24     c_float,
25     c_double,
26 };
27 pub use activation::*;
28 pub use audioclient::*;
29 pub use audiosessiontypes::*;
30 pub use basetsd::*;
31 pub use bcrypt::*;
32 pub use cfg::*;
33 pub use cfgmgr32::*;
34 pub use combaseapi::*;
35 pub use commctrl::*;
36 pub use commdlg::*;
37 pub use corsym::*;
38 pub use d2d1::*;
39 pub use d2dbasetypes::*;
40 pub use d3d9::*;
41 pub use d3d9caps::*;
42 pub use d3d9types::*;
43 pub use d3d11::*;
44 pub use d3d10shader::*;
45 pub use d3d11shader::*;
46 pub use d3d12::*;
47 pub use d3d12sdklayers::*;
48 pub use d3d12shader::*;
49 pub use d3dcommon::*;
50 pub use d3dcompiler::*;
51 pub use dbghelp::*;
52 pub use dcommon::*;
53 pub use devpropdef::*;
54 pub use docobj::*;
55 pub use dpapi::*;
56 pub use dsgetdc::*;
57 pub use dsound::*;
58 pub use dsrole::*;
59 pub use dwmapi::*;
60 pub use dwrite::*;
61 pub use dxgi::*;
62 pub use dxgi1_2::*;
63 pub use dxgi1_3::*;
64 pub use dxgi1_4::*;
65 pub use dxgiformat::*;
66 pub use dxgitype::*;
67 pub use errhandlingapi::*;
68 pub use excpt::*;
69 pub use fileapi::*;
70 pub use gl::*;
71 pub use guiddef::*;
72 pub use heapapi::*;
73 pub use hidclass::*;
74 pub use hidpi::*;
75 pub use hidsdi::*;
76 pub use hidusage::*;
77 pub use hstring::*;
78 pub use http::*;
79 pub use imm::*;
80 pub use inaddr::*;
81 pub use inspectable::*;
82 pub use ksmedia::*;
83 pub use libloaderapi::*;
84 pub use lmaccess::*;
85 pub use lmcons::*;
86 pub use lmdfs::*;
87 pub use lmerrlog::*;
88 pub use lmjoin::*;
89 pub use lsalookup::*;
90 pub use memoryapi::*;
91 pub use minschannel::*;
92 pub use minwinbase::*;
93 pub use minwindef::*;
94 pub use mmdeviceapi::*;
95 pub use mmreg::*;
96 pub use mmsystem::*;
97 pub use mscat::*;
98 pub use mssip::*;
99 pub use nb30::*;
100 pub use ncrypt::*;
101 pub use ntdef::*;
102 pub use ntsecapi::*;
103 pub use ntstatus::*;
104 pub use oaidl::*;
105 pub use objbase::*;
106 pub use objidl::*;
107 pub use objidlbase::*;
108 pub use olectl::*;
109 pub use pdh::*;
110 pub use playsoundapi::*;
111 pub use processsnapshot::*;
112 pub use processthreadsapi::*;
113 pub use propidl::*;
114 pub use propsys::*;
115 pub use prsht::*;
116 pub use psapi::*;
117 pub use qos::*;
118 pub use reason::*;
119 pub use restrictederrorinfo::*;
120 pub use roapi::*;
121 pub use roerrorapi::*;
122 pub use rpc::*;
123 pub use rpcdce::*;
124 pub use sapi::*;
125 pub use schannel::*;
126 pub use servprov::*;
127 pub use setupapi::*;
128 pub use shellapi::*;
129 pub use shellscalingapi::*;
130 pub use shlguid::*;
131 pub use shlobj::*;
132 pub use shobjidl::*;
133 pub use shtypes::*;
134 pub use spapidef::*;
135 pub use sqltypes::*;
136 pub use sspi::*;
137 pub use strmif::*;
138 pub use subauth::*;
139 pub use synchapi::*;
140 pub use sysinfoapi::*;
141 pub use threadpoolapi::*;
142 pub use timezoneapi::*;
143 pub use tlhelp32::*;
144 pub use unknwnbase::*;
145 pub use urlhist::*;
146 pub use urlmon::*;
147 pub use usb::*;
148 pub use usbspec::*;
149 pub use usp10::*;
150 pub use vadefs::*;
151 pub use vsbackup::*;
152 pub use vss::*;
153 pub use vsserror::*;
154 pub use vswriter::*;
155 pub use werapi::*;
156 pub use winbase::*;
157 pub use wincon::*;
158 pub use wincred::*;
159 pub use wincrypt::*;
160 pub use windowsx::*;
161 pub use windef::*;
162 pub use windowscodecs::*;
163 pub use winerror::*;
164 pub use winevt::*;
165 pub use wingdi::*;
166 pub use winhttp::*;
167 pub use winioctl::*;
168 pub use winnetwk::*;
169 pub use winnls::*;
170 pub use winnt::*;
171 pub use winreg::*;
172 pub use winscard::*;
173 pub use winsmcrd::*;
174 pub use winsock2::*;
175 pub use winspool::*;
176 pub use winstring::*;
177 pub use winsvc::*;
178 pub use winusb::*;
179 pub use winusbio::*;
180 pub use winuser::*;
181 pub use ws2def::*;
182 pub use ws2ipdef::*;
183 pub use ws2spi::*;
184 pub use ws2tcpip::*;
185 pub use wtypes::*;
186 pub use wtypesbase::*;
187 pub use xinput::*;
188 //-------------------------------------------------------------------------------------------------
189 // Modules
190 //-------------------------------------------------------------------------------------------------
191 #[macro_use] mod macros;
192 pub mod activation;
193 pub mod audioclient;
194 pub mod audiosessiontypes;
195 pub mod basetsd;
196 pub mod bcrypt;
197 pub mod cfg;
198 pub mod cfgmgr32;
199 pub mod combaseapi;
200 pub mod commctrl;
201 pub mod commdlg;
202 pub mod corsym;
203 pub mod d2d1;
204 pub mod d2dbasetypes;
205 pub mod d3d9;
206 pub mod d3d9caps;
207 pub mod d3d9types;
208 pub mod d3d11;
209 pub mod d3d10shader;
210 pub mod d3d11shader;
211 pub mod d3d12;
212 pub mod d3d12sdklayers;
213 pub mod d3d12shader;
214 pub mod d3dcommon;
215 pub mod d3dcompiler;
216 pub mod dbghelp;
217 pub mod dcommon;
218 pub mod devpropdef;
219 pub mod docobj;
220 pub mod dpapi;
221 pub mod dsgetdc;
222 pub mod dsound;
223 pub mod dsrole;
224 pub mod dwmapi;
225 pub mod dwrite;
226 pub mod dxgi;
227 pub mod dxgi1_2;
228 pub mod dxgi1_3;
229 pub mod dxgi1_4;
230 pub mod dxgiformat;
231 pub mod dxgitype;
232 pub mod errhandlingapi;
233 pub mod excpt;
234 pub mod fileapi;
235 pub mod gl;
236 pub mod guiddef;
237 pub mod heapapi;
238 pub mod hidclass;
239 pub mod hidpi;
240 pub mod hidsdi;
241 pub mod hidusage;
242 pub mod hstring;
243 pub mod http;
244 pub mod imm;
245 pub mod inaddr;
246 pub mod inspectable;
247 pub mod ksmedia;
248 pub mod libloaderapi;
249 pub mod lmaccess;
250 pub mod lmcons;
251 pub mod lmdfs;
252 pub mod lmerrlog;
253 pub mod lmjoin;
254 pub mod lsalookup;
255 pub mod memoryapi;
256 pub mod minschannel;
257 pub mod minwinbase;
258 pub mod minwindef;
259 pub mod mmdeviceapi;
260 pub mod mmreg;
261 pub mod mmsystem;
262 pub mod mscat;
263 pub mod mssip;
264 pub mod nb30;
265 pub mod ncrypt;
266 pub mod ntdef;
267 pub mod ntsecapi;
268 pub mod ntstatus;
269 pub mod oaidl;
270 pub mod objbase;
271 pub mod objidl;
272 pub mod objidlbase;
273 pub mod olectl;
274 pub mod pdh;
275 pub mod playsoundapi;
276 pub mod processsnapshot;
277 pub mod processthreadsapi;
278 pub mod propidl;
279 pub mod propsys;
280 pub mod prsht;
281 pub mod psapi;
282 pub mod qos;
283 pub mod reason;
284 pub mod restrictederrorinfo;
285 pub mod roapi;
286 pub mod roerrorapi;
287 pub mod rpc;
288 pub mod rpcdce;
289 pub mod sapi;
290 pub mod schannel;
291 pub mod servprov;
292 pub mod setupapi;
293 pub mod shellapi;
294 pub mod shellscalingapi;
295 pub mod shlguid;
296 pub mod shlobj;
297 pub mod shobjidl;
298 pub mod shtypes;
299 pub mod spapidef;
300 pub mod sqltypes;
301 pub mod sspi;
302 pub mod strmif;
303 pub mod subauth;
304 pub mod synchapi;
305 pub mod sysinfoapi;
306 pub mod threadpoolapi;
307 pub mod timezoneapi;
308 pub mod tlhelp32;
309 pub mod unknwnbase;
310 pub mod urlhist;
311 pub mod urlmon;
312 pub mod usb;
313 pub mod usbspec;
314 pub mod usp10;
315 pub mod vadefs;
316 pub mod vsbackup;
317 pub mod vss;
318 pub mod vsserror;
319 pub mod vswriter;
320 pub mod werapi;
321 pub mod winbase;
322 pub mod wincon;
323 pub mod wincred;
324 pub mod wincrypt;
325 pub mod windef;
326 pub mod windowscodecs;
327 pub mod windowsx;
328 pub mod winerror;
329 pub mod winevt;
330 pub mod wingdi;
331 pub mod winhttp;
332 pub mod winioctl;
333 pub mod winnetwk;
334 pub mod winnls;
335 pub mod winnt;
336 pub mod winreg;
337 pub mod winscard;
338 pub mod winsmcrd;
339 pub mod winsock2;
340 pub mod winspool;
341 pub mod winstring;
342 pub mod winsvc;
343 pub mod winusb;
344 pub mod winusbio;
345 pub mod winuser;
346 pub mod ws2def;
347 pub mod ws2ipdef;
348 pub mod ws2spi;
349 pub mod ws2tcpip;
350 pub mod wtypes;
351 pub mod wtypesbase;
352 pub mod xinput;
353 //-------------------------------------------------------------------------------------------------
354 // Primitive types not provided by std
355 //-------------------------------------------------------------------------------------------------
356 pub type __int8 = i8;
357 pub type __uint8 = u8;
358 pub type __int16 = i16;
359 pub type __uint16 = u16;
360 pub type __int32 = i32;
361 pub type __uint32 = u32;
362 pub type __int64 = i64;
363 pub type __uint64 = u64;
364 pub type wchar_t = c_ushort;
365 #[cfg(target_arch = "x86")]
366 pub type size_t = c_uint;
367 #[cfg(target_arch = "x86_64")]
368 pub type size_t = __uint64;
369