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