#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
#![allow(improper_ctypes)]

/* automatically generated by rust-bindgen */

#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage, Align> {
    storage: Storage,
    align: [Align; 0],
}
impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> {
    #[inline]
    pub const fn new(storage: Storage) -> Self {
        Self { storage, align: [] }
    }
}
impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
where
    Storage: AsRef<[u8]> + AsMut<[u8]>,
{
    #[inline]
    pub fn get_bit(&self, index: usize) -> bool {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = self.storage.as_ref()[byte_index];
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        byte & mask == mask
    }
    #[inline]
    pub fn set_bit(&mut self, index: usize, val: bool) {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = &mut self.storage.as_mut()[byte_index];
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        if val {
            *byte |= mask;
        } else {
            *byte &= !mask;
        }
    }
    #[inline]
    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        let mut val = 0;
        for i in 0..(bit_width as usize) {
            if self.get_bit(i + bit_offset) {
                let index = if cfg!(target_endian = "big") {
                    bit_width as usize - 1 - i
                } else {
                    i
                };
                val |= 1 << index;
            }
        }
        val
    }
    #[inline]
    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        for i in 0..(bit_width as usize) {
            let mask = 1 << i;
            let val_bit_is_set = val & mask == mask;
            let index = if cfg!(target_endian = "big") {
                bit_width as usize - 1 - i
            } else {
                i
            };
            self.set_bit(index + bit_offset, val_bit_is_set);
        }
    }
}
#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
    #[inline]
    pub const fn new() -> Self {
        __IncompleteArrayField(::std::marker::PhantomData, [])
    }
    #[inline]
    pub unsafe fn as_ptr(&self) -> *const T {
        ::std::mem::transmute(self)
    }
    #[inline]
    pub unsafe fn as_mut_ptr(&mut self) -> *mut T {
        ::std::mem::transmute(self)
    }
    #[inline]
    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
        ::std::slice::from_raw_parts(self.as_ptr(), len)
    }
    #[inline]
    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
    }
}
impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_str("__IncompleteArrayField")
    }
}
impl<T> ::std::clone::Clone for __IncompleteArrayField<T> {
    #[inline]
    fn clone(&self) -> Self {
        Self::new()
    }
}
pub const SOKOL_APP_INCLUDED: u32 = 1;
pub const __MINGW64_VERSION_MAJOR: u32 = 7;
pub const __MINGW64_VERSION_MINOR: u32 = 0;
pub const __MINGW64_VERSION_BUGFIX: u32 = 0;
pub const __MINGW64_VERSION_RC: u32 = 0;
pub const __MINGW64_VERSION_STATE: &'static [u8; 6usize] = b"alpha\0";
pub const __MINGW32_MAJOR_VERSION: u32 = 3;
pub const __MINGW32_MINOR_VERSION: u32 = 11;
pub const _M_AMD64: u32 = 100;
pub const _M_X64: u32 = 100;
pub const __: u32 = 1;
pub const __MINGW_USE_UNDERSCORE_PREFIX: u32 = 0;
pub const __MINGW_HAVE_ANSI_C99_PRINTF: u32 = 1;
pub const __MINGW_HAVE_WIDE_C99_PRINTF: u32 = 1;
pub const __MINGW_HAVE_ANSI_C99_SCANF: u32 = 1;
pub const __MINGW_HAVE_WIDE_C99_SCANF: u32 = 1;
pub const __MINGW_SEC_WARN_STR : & 'static [ u8 ; 92usize ] = b"This function or variable may be unsafe, use _CRT_SECURE_NO_WARNINGS to disable deprecation\0" ;
pub const __MINGW_MSVC2005_DEPREC_STR : & 'static [ u8 ; 117usize ] = b"This POSIX function is deprecated beginning in Visual C++ 2005, use _CRT_NONSTDC_NO_DEPRECATE to disable deprecation\0" ;
pub const __MINGW_FORTIFY_LEVEL: u32 = 0;
pub const __MINGW_FORTIFY_VA_ARG: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY: u32 = 0;
pub const __USE_CRTIMP: u32 = 1;
pub const USE___UUIDOF: u32 = 0;
pub const __CRT__NO_INLINE: u32 = 1;
pub const __MSVCRT_VERSION__: u32 = 1792;
pub const _WIN32_WINNT: u32 = 1282;
pub const MINGW_HAS_SECURE_API: u32 = 1;
pub const __STDC_SECURE_LIB__: u32 = 200411;
pub const __GOT_SECURE_LIB__: u32 = 200411;
pub const __MINGW_HAS_DXSDK: u32 = 1;
pub const MINGW_HAS_DDRAW_H: u32 = 1;
pub const MINGW_DDRAW_VERSION: u32 = 7;
pub const MINGW_HAS_DDK_H: u32 = 1;
pub const _CRT_PACKING: u32 = 8;
pub const _SECURECRT_FILL_BUFFER_PATTERN: u32 = 253;
pub const _ARGMAX: u32 = 100;
pub const __USE_MINGW_ANSI_STDIO: u32 = 0;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT64_MIN: i64 = -9223372036854775808;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const INT64_MAX: u64 = 9223372036854775807;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const UINT64_MAX: i32 = -1;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST64_MIN: i64 = -9223372036854775808;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const INT_LEAST64_MAX: u64 = 9223372036854775807;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const UINT_LEAST64_MAX: i32 = -1;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i32 = -32768;
pub const INT_FAST32_MIN: i32 = -2147483648;
pub const INT_FAST64_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u32 = 32767;
pub const INT_FAST32_MAX: u32 = 2147483647;
pub const INT_FAST64_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: u32 = 65535;
pub const UINT_FAST32_MAX: u32 = 4294967295;
pub const UINT_FAST64_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const INTMAX_MIN: i64 = -9223372036854775808;
pub const INTMAX_MAX: u64 = 9223372036854775807;
pub const UINTMAX_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WCHAR_MIN: u32 = 0;
pub const WCHAR_MAX: u32 = 65535;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 65535;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const __bool_true_false_are_defined: u32 = 1;
pub const SOKOL_APP_IMPL_INCLUDED: u32 = 1;
pub const _NLSCMPERROR: u32 = 2147483647;
pub const SOKOL_DEBUG: u32 = 1;
pub const PATH_MAX: u32 = 260;
pub const CHAR_BIT: u32 = 8;
pub const SCHAR_MIN: i32 = -128;
pub const SCHAR_MAX: u32 = 127;
pub const UCHAR_MAX: u32 = 255;
pub const CHAR_MIN: i32 = -128;
pub const CHAR_MAX: u32 = 127;
pub const MB_LEN_MAX: u32 = 5;
pub const SHRT_MIN: i32 = -32768;
pub const SHRT_MAX: u32 = 32767;
pub const USHRT_MAX: u32 = 65535;
pub const INT_MIN: i32 = -2147483648;
pub const INT_MAX: u32 = 2147483647;
pub const UINT_MAX: u32 = 4294967295;
pub const LONG_MIN: i32 = -2147483648;
pub const LONG_MAX: u32 = 2147483647;
pub const ULONG_MAX: u32 = 4294967295;
pub const LLONG_MAX: u64 = 9223372036854775807;
pub const LLONG_MIN: i64 = -9223372036854775808;
pub const ULLONG_MAX: i32 = -1;
pub const _I8_MIN: i32 = -128;
pub const _I8_MAX: u32 = 127;
pub const _UI8_MAX: u32 = 255;
pub const _I16_MIN: i32 = -32768;
pub const _I16_MAX: u32 = 32767;
pub const _UI16_MAX: u32 = 65535;
pub const _I32_MIN: i32 = -2147483648;
pub const _I32_MAX: u32 = 2147483647;
pub const _UI32_MAX: u32 = 4294967295;
pub const LONG_LONG_MAX: u64 = 9223372036854775807;
pub const LONG_LONG_MIN: i64 = -9223372036854775808;
pub const ULONG_LONG_MAX: i32 = -1;
pub const _I64_MIN: i64 = -9223372036854775808;
pub const _I64_MAX: u64 = 9223372036854775807;
pub const _UI64_MAX: i32 = -1;
pub const SSIZE_MAX: u64 = 9223372036854775807;
pub const EXIT_SUCCESS: u32 = 0;
pub const EXIT_FAILURE: u32 = 1;
pub const RAND_MAX: u32 = 32767;
pub const _MAX_PATH: u32 = 260;
pub const _MAX_DRIVE: u32 = 3;
pub const _MAX_DIR: u32 = 256;
pub const _MAX_FNAME: u32 = 256;
pub const _MAX_EXT: u32 = 256;
pub const _OUT_TO_DEFAULT: u32 = 0;
pub const _OUT_TO_STDERR: u32 = 1;
pub const _OUT_TO_MSGBOX: u32 = 2;
pub const _REPORT_ERRMODE: u32 = 3;
pub const _WRITE_ABORT_MSG: u32 = 1;
pub const _CALL_REPORTFAULT: u32 = 2;
pub const _MAX_ENV: u32 = 32767;
pub const _CVTBUFSIZE: u32 = 349;
pub const _HEAP_MAXREQ: i32 = -32;
pub const _HEAPEMPTY: i32 = -1;
pub const _HEAPOK: i32 = -2;
pub const _HEAPBADBEGIN: i32 = -3;
pub const _HEAPBADNODE: i32 = -4;
pub const _HEAPEND: i32 = -5;
pub const _HEAPBADPTR: i32 = -6;
pub const _FREEENTRY: u32 = 0;
pub const _USEDENTRY: u32 = 1;
pub const _MAX_WAIT_MALLOC_CRT: u32 = 60000;
pub const _ALLOCA_S_THRESHOLD: u32 = 1024;
pub const _ALLOCA_S_STACK_MARKER: u32 = 52428;
pub const _ALLOCA_S_HEAP_MARKER: u32 = 56797;
pub const _ALLOCA_S_MARKER_SIZE: u32 = 16;
pub const BUFSIZ: u32 = 512;
pub const _NSTREAM_: u32 = 512;
pub const _IOB_ENTRIES: u32 = 20;
pub const EOF: i32 = -1;
pub const _P_tmpdir: &'static [u8; 2usize] = b"\\\0";
pub const _wP_tmpdir: &'static [u8; 2usize] = b"\\\0";
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const SEEK_SET: u32 = 0;
pub const STDIN_FILENO: u32 = 0;
pub const STDOUT_FILENO: u32 = 1;
pub const STDERR_FILENO: u32 = 2;
pub const FILENAME_MAX: u32 = 260;
pub const FOPEN_MAX: u32 = 20;
pub const _SYS_OPEN: u32 = 20;
pub const TMP_MAX: u32 = 32767;
pub const _IOREAD: u32 = 1;
pub const _IOWRT: u32 = 2;
pub const _IOFBF: u32 = 0;
pub const _IOLBF: u32 = 64;
pub const _IONBF: u32 = 4;
pub const _IOMYBUF: u32 = 8;
pub const _IOEOF: u32 = 16;
pub const _IOERR: u32 = 32;
pub const _IOSTRG: u32 = 64;
pub const _IORW: u32 = 128;
pub const _TWO_DIGIT_EXPONENT: u32 = 1;
pub const P_tmpdir: &'static [u8; 2usize] = b"\\\0";
pub const SYS_OPEN: u32 = 20;
pub const _P_WAIT: u32 = 0;
pub const _P_NOWAIT: u32 = 1;
pub const _OLD_P_OVERLAY: u32 = 2;
pub const _P_NOWAITO: u32 = 3;
pub const _P_DETACH: u32 = 4;
pub const _P_OVERLAY: u32 = 2;
pub const _WAIT_CHILD: u32 = 0;
pub const _WAIT_GRANDCHILD: u32 = 1;
pub const _WIN32_WINNT_NT4: u32 = 1024;
pub const _WIN32_WINNT_WIN2K: u32 = 1280;
pub const _WIN32_WINNT_WINXP: u32 = 1281;
pub const _WIN32_WINNT_WS03: u32 = 1282;
pub const _WIN32_WINNT_WIN6: u32 = 1536;
pub const _WIN32_WINNT_VISTA: u32 = 1536;
pub const _WIN32_WINNT_WS08: u32 = 1536;
pub const _WIN32_WINNT_LONGHORN: u32 = 1536;
pub const _WIN32_WINNT_WIN7: u32 = 1537;
pub const _WIN32_WINNT_WIN8: u32 = 1538;
pub const _WIN32_WINNT_WINBLUE: u32 = 1539;
pub const _WIN32_WINNT_WINTHRESHOLD: u32 = 2560;
pub const _WIN32_WINNT_WIN10: u32 = 2560;
pub const _WIN32_IE_IE20: u32 = 512;
pub const _WIN32_IE_IE30: u32 = 768;
pub const _WIN32_IE_IE302: u32 = 770;
pub const _WIN32_IE_IE40: u32 = 1024;
pub const _WIN32_IE_IE401: u32 = 1025;
pub const _WIN32_IE_IE50: u32 = 1280;
pub const _WIN32_IE_IE501: u32 = 1281;
pub const _WIN32_IE_IE55: u32 = 1360;
pub const _WIN32_IE_IE60: u32 = 1536;
pub const _WIN32_IE_IE60SP1: u32 = 1537;
pub const _WIN32_IE_IE60SP2: u32 = 1539;
pub const _WIN32_IE_IE70: u32 = 1792;
pub const _WIN32_IE_IE80: u32 = 2048;
pub const _WIN32_IE_IE90: u32 = 2304;
pub const _WIN32_IE_IE100: u32 = 2560;
pub const _WIN32_IE_IE110: u32 = 2560;
pub const _WIN32_IE_NT4: u32 = 512;
pub const _WIN32_IE_NT4SP1: u32 = 512;
pub const _WIN32_IE_NT4SP2: u32 = 512;
pub const _WIN32_IE_NT4SP3: u32 = 770;
pub const _WIN32_IE_NT4SP4: u32 = 1025;
pub const _WIN32_IE_NT4SP5: u32 = 1025;
pub const _WIN32_IE_NT4SP6: u32 = 1280;
pub const _WIN32_IE_WIN98: u32 = 1025;
pub const _WIN32_IE_WIN98SE: u32 = 1280;
pub const _WIN32_IE_WINME: u32 = 1360;
pub const _WIN32_IE_WIN2K: u32 = 1281;
pub const _WIN32_IE_WIN2KSP1: u32 = 1281;
pub const _WIN32_IE_WIN2KSP2: u32 = 1281;
pub const _WIN32_IE_WIN2KSP3: u32 = 1281;
pub const _WIN32_IE_WIN2KSP4: u32 = 1281;
pub const _WIN32_IE_XP: u32 = 1536;
pub const _WIN32_IE_XPSP1: u32 = 1537;
pub const _WIN32_IE_XPSP2: u32 = 1539;
pub const _WIN32_IE_WS03: u32 = 1538;
pub const _WIN32_IE_WS03SP1: u32 = 1539;
pub const _WIN32_IE_WIN6: u32 = 1792;
pub const _WIN32_IE_LONGHORN: u32 = 1792;
pub const _WIN32_IE_WIN7: u32 = 2048;
pub const _WIN32_IE_WIN8: u32 = 2560;
pub const _WIN32_IE_WINBLUE: u32 = 2560;
pub const _WIN32_IE_WINTHRESHOLD: u32 = 2560;
pub const _WIN32_IE_WIN10: u32 = 2560;
pub const NTDDI_WIN2K: u32 = 83886080;
pub const NTDDI_WIN2KSP1: u32 = 83886336;
pub const NTDDI_WIN2KSP2: u32 = 83886592;
pub const NTDDI_WIN2KSP3: u32 = 83886848;
pub const NTDDI_WIN2KSP4: u32 = 83887104;
pub const NTDDI_WINXP: u32 = 83951616;
pub const NTDDI_WINXPSP1: u32 = 83951872;
pub const NTDDI_WINXPSP2: u32 = 83952128;
pub const NTDDI_WINXPSP3: u32 = 83952384;
pub const NTDDI_WINXPSP4: u32 = 83952640;
pub const NTDDI_WS03: u32 = 84017152;
pub const NTDDI_WS03SP1: u32 = 84017408;
pub const NTDDI_WS03SP2: u32 = 84017664;
pub const NTDDI_WS03SP3: u32 = 84017920;
pub const NTDDI_WS03SP4: u32 = 84018176;
pub const NTDDI_WIN6: u32 = 100663296;
pub const NTDDI_WIN6SP1: u32 = 100663552;
pub const NTDDI_WIN6SP2: u32 = 100663808;
pub const NTDDI_WIN6SP3: u32 = 100664064;
pub const NTDDI_WIN6SP4: u32 = 100664320;
pub const NTDDI_VISTA: u32 = 100663296;
pub const NTDDI_VISTASP1: u32 = 100663552;
pub const NTDDI_VISTASP2: u32 = 100663808;
pub const NTDDI_VISTASP3: u32 = 100664064;
pub const NTDDI_VISTASP4: u32 = 100664320;
pub const NTDDI_LONGHORN: u32 = 100663296;
pub const NTDDI_WS08: u32 = 100663552;
pub const NTDDI_WS08SP2: u32 = 100663808;
pub const NTDDI_WS08SP3: u32 = 100664064;
pub const NTDDI_WS08SP4: u32 = 100664320;
pub const NTDDI_WIN7: u32 = 100728832;
pub const NTDDI_WIN8: u32 = 100794368;
pub const NTDDI_WINBLUE: u32 = 100859904;
pub const NTDDI_WINTHRESHOLD: u32 = 167772160;
pub const NTDDI_WIN10: u32 = 167772160;
pub const NTDDI_WIN10_TH2: u32 = 167772161;
pub const NTDDI_WIN10_RS1: u32 = 167772162;
pub const NTDDI_WIN10_RS2: u32 = 167772163;
pub const NTDDI_WIN10_RS3: u32 = 167772164;
pub const NTDDI_WIN10_RS4: u32 = 167772165;
pub const NTDDI_WIN10_RS5: u32 = 167772166;
pub const NTDDI_WIN10_19H1: u32 = 167772167;
pub const OSVERSION_MASK: u32 = 4294901760;
pub const SPVERSION_MASK: u32 = 65280;
pub const SUBVERSION_MASK: u32 = 255;
pub const WINVER: u32 = 1282;
pub const _WIN32_IE: u32 = 1538;
pub const ExceptionContinueExecution: u32 = 0;
pub const ExceptionContinueSearch: u32 = 1;
pub const ExceptionNestedException: u32 = 2;
pub const ExceptionCollidedUnwind: u32 = 3;
pub const ExceptionExecuteHandler: u32 = 4;
pub const EXCEPTION_EXECUTE_HANDLER: u32 = 1;
pub const EXCEPTION_CONTINUE_SEARCH: u32 = 0;
pub const EXCEPTION_CONTINUE_EXECUTION: i32 = -1;
pub const WINAPI_PARTITION_DESKTOP: u32 = 1;
pub const WINAPI_PARTITION_APP: u32 = 2;
pub const WINAPI_FAMILY_APP: u32 = 2;
pub const WINAPI_FAMILY_DESKTOP_APP: u32 = 3;
pub const WINAPI_FAMILY: u32 = 3;
pub const __STDC_WANT_SECURE_LIB__: u32 = 0;
pub const STRICT: u32 = 1;
pub const MAX_PATH: u32 = 260;
pub const FALSE: u32 = 0;
pub const TRUE: u32 = 1;
pub const _INC_CRT_UNICODE_MACROS: u32 = 2;
pub const __MINGW_PROCNAMEEXT_AW: &'static [u8; 2usize] = b"A\0";
pub const _UPPER: u32 = 1;
pub const _LOWER: u32 = 2;
pub const _DIGIT: u32 = 4;
pub const _SPACE: u32 = 8;
pub const _PUNCT: u32 = 16;
pub const _CONTROL: u32 = 32;
pub const _BLANK: u32 = 64;
pub const _HEX: u32 = 128;
pub const _LEADBYTE: u32 = 32768;
pub const _ALPHA: u32 = 259;
pub const API_SET_PREFIX_NAME_A: &'static [u8; 5usize] = b"API-\0";
pub const API_SET_PREFIX_NAME_U: &'static [u8; 5usize] = b"API-\0";
pub const API_SET_EXTENSION_NAME_A: &'static [u8; 5usize] = b"EXT-\0";
pub const API_SET_EXTENSION_NAME_U: &'static [u8; 5usize] = b"EXT-\0";
pub const API_SET_SECTION_NAME: &'static [u8; 8usize] = b".apiset\0";
pub const API_SET_SCHEMA_SUFFIX: &'static [u8; 5usize] = b".sys\0";
pub const API_SET_LOAD_SCHEMA_ORDINAL: u32 = 1;
pub const API_SET_LOOKUP_ORDINAL: u32 = 2;
pub const API_SET_RELEASE_SCHEMA_ORDINAL: u32 = 3;
pub const ANYSIZE_ARRAY: u32 = 1;
pub const __FLAGCONSTRAINT: &'static [u8; 6usize] = b"=@ccc\0";
pub const MEMORY_ALLOCATION_ALIGNMENT: u32 = 16;
pub const ADDRESS_TAG_BIT: u64 = 4398046511104;
pub const SYSTEM_CACHE_ALIGNMENT_SIZE: u32 = 64;
pub const PRAGMA_DEPRECATED_DDK: u32 = 0;
pub const APPLICATION_ERROR_MASK: u32 = 536870912;
pub const ERROR_SEVERITY_SUCCESS: u32 = 0;
pub const ERROR_SEVERITY_INFORMATIONAL: u32 = 1073741824;
pub const ERROR_SEVERITY_WARNING: u32 = 2147483648;
pub const ERROR_SEVERITY_ERROR: u32 = 3221225472;
pub const MAXLONGLONG: u64 = 9223372036854775807;
pub const UNICODE_STRING_MAX_CHARS: u32 = 32767;
pub const MINCHAR: u32 = 128;
pub const MAXCHAR: u32 = 127;
pub const MINSHORT: u32 = 32768;
pub const MAXSHORT: u32 = 32767;
pub const MINLONG: u32 = 2147483648;
pub const MAXLONG: u32 = 2147483647;
pub const MAXBYTE: u32 = 255;
pub const MAXWORD: u32 = 65535;
pub const MAXDWORD: u32 = 4294967295;
pub const VER_WORKSTATION_NT: u32 = 1073741824;
pub const VER_SERVER_NT: u32 = 2147483648;
pub const VER_SUITE_SMALLBUSINESS: u32 = 1;
pub const VER_SUITE_ENTERPRISE: u32 = 2;
pub const VER_SUITE_BACKOFFICE: u32 = 4;
pub const VER_SUITE_COMMUNICATIONS: u32 = 8;
pub const VER_SUITE_TERMINAL: u32 = 16;
pub const VER_SUITE_SMALLBUSINESS_RESTRICTED: u32 = 32;
pub const VER_SUITE_EMBEDDEDNT: u32 = 64;
pub const VER_SUITE_DATACENTER: u32 = 128;
pub const VER_SUITE_SINGLEUSERTS: u32 = 256;
pub const VER_SUITE_PERSONAL: u32 = 512;
pub const VER_SUITE_BLADE: u32 = 1024;
pub const VER_SUITE_EMBEDDED_RESTRICTED: u32 = 2048;
pub const VER_SUITE_SECURITY_APPLIANCE: u32 = 4096;
pub const VER_SUITE_STORAGE_SERVER: u32 = 8192;
pub const VER_SUITE_COMPUTE_SERVER: u32 = 16384;
pub const VER_SUITE_WH_SERVER: u32 = 32768;
pub const PRODUCT_UNDEFINED: u32 = 0;
pub const PRODUCT_ULTIMATE: u32 = 1;
pub const PRODUCT_HOME_BASIC: u32 = 2;
pub const PRODUCT_HOME_PREMIUM: u32 = 3;
pub const PRODUCT_ENTERPRISE: u32 = 4;
pub const PRODUCT_HOME_BASIC_N: u32 = 5;
pub const PRODUCT_BUSINESS: u32 = 6;
pub const PRODUCT_STANDARD_SERVER: u32 = 7;
pub const PRODUCT_DATACENTER_SERVER: u32 = 8;
pub const PRODUCT_SMALLBUSINESS_SERVER: u32 = 9;
pub const PRODUCT_ENTERPRISE_SERVER: u32 = 10;
pub const PRODUCT_STARTER: u32 = 11;
pub const PRODUCT_DATACENTER_SERVER_CORE: u32 = 12;
pub const PRODUCT_STANDARD_SERVER_CORE: u32 = 13;
pub const PRODUCT_ENTERPRISE_SERVER_CORE: u32 = 14;
pub const PRODUCT_ENTERPRISE_SERVER_IA64: u32 = 15;
pub const PRODUCT_BUSINESS_N: u32 = 16;
pub const PRODUCT_WEB_SERVER: u32 = 17;
pub const PRODUCT_CLUSTER_SERVER: u32 = 18;
pub const PRODUCT_HOME_SERVER: u32 = 19;
pub const PRODUCT_STORAGE_EXPRESS_SERVER: u32 = 20;
pub const PRODUCT_STORAGE_STANDARD_SERVER: u32 = 21;
pub const PRODUCT_STORAGE_WORKGROUP_SERVER: u32 = 22;
pub const PRODUCT_STORAGE_ENTERPRISE_SERVER: u32 = 23;
pub const PRODUCT_SERVER_FOR_SMALLBUSINESS: u32 = 24;
pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM: u32 = 25;
pub const PRODUCT_HOME_PREMIUM_N: u32 = 26;
pub const PRODUCT_ENTERPRISE_N: u32 = 27;
pub const PRODUCT_ULTIMATE_N: u32 = 28;
pub const PRODUCT_WEB_SERVER_CORE: u32 = 29;
pub const PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT: u32 = 30;
pub const PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY: u32 = 31;
pub const PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING: u32 = 32;
pub const PRODUCT_SERVER_FOUNDATION: u32 = 33;
pub const PRODUCT_HOME_PREMIUM_SERVER: u32 = 34;
pub const PRODUCT_SERVER_FOR_SMALLBUSINESS_V: u32 = 35;
pub const PRODUCT_STANDARD_SERVER_V: u32 = 36;
pub const PRODUCT_DATACENTER_SERVER_V: u32 = 37;
pub const PRODUCT_SERVER_V: u32 = 37;
pub const PRODUCT_ENTERPRISE_SERVER_V: u32 = 38;
pub const PRODUCT_DATACENTER_SERVER_CORE_V: u32 = 39;
pub const PRODUCT_STANDARD_SERVER_CORE_V: u32 = 40;
pub const PRODUCT_ENTERPRISE_SERVER_CORE_V: u32 = 41;
pub const PRODUCT_HYPERV: u32 = 42;
pub const PRODUCT_STORAGE_EXPRESS_SERVER_CORE: u32 = 43;
pub const PRODUCT_STORAGE_STANDARD_SERVER_CORE: u32 = 44;
pub const PRODUCT_STORAGE_WORKGROUP_SERVER_CORE: u32 = 45;
pub const PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE: u32 = 46;
pub const PRODUCT_STARTER_N: u32 = 47;
pub const PRODUCT_PROFESSIONAL: u32 = 48;
pub const PRODUCT_PROFESSIONAL_N: u32 = 49;
pub const PRODUCT_SB_SOLUTION_SERVER: u32 = 50;
pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS: u32 = 51;
pub const PRODUCT_STANDARD_SERVER_SOLUTIONS: u32 = 52;
pub const PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE: u32 = 53;
pub const PRODUCT_SB_SOLUTION_SERVER_EM: u32 = 54;
pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM: u32 = 55;
pub const PRODUCT_SOLUTION_EMBEDDEDSERVER: u32 = 56;
pub const PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE: u32 = 57;
pub const PRODUCT_PROFESSIONAL_EMBEDDED: u32 = 58;
pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT: u32 = 59;
pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL: u32 = 60;
pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC: u32 = 61;
pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC: u32 = 62;
pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE: u32 = 63;
pub const PRODUCT_CLUSTER_SERVER_V: u32 = 64;
pub const PRODUCT_EMBEDDED: u32 = 65;
pub const PRODUCT_STARTER_E: u32 = 66;
pub const PRODUCT_HOME_BASIC_E: u32 = 67;
pub const PRODUCT_HOME_PREMIUM_E: u32 = 68;
pub const PRODUCT_PROFESSIONAL_E: u32 = 69;
pub const PRODUCT_ENTERPRISE_E: u32 = 70;
pub const PRODUCT_ULTIMATE_E: u32 = 71;
pub const PRODUCT_ENTERPRISE_EVALUATION: u32 = 72;
pub const PRODUCT_MULTIPOINT_STANDARD_SERVER: u32 = 76;
pub const PRODUCT_MULTIPOINT_PREMIUM_SERVER: u32 = 77;
pub const PRODUCT_STANDARD_EVALUATION_SERVER: u32 = 79;
pub const PRODUCT_DATACENTER_EVALUATION_SERVER: u32 = 80;
pub const PRODUCT_ENTERPRISE_N_EVALUATION: u32 = 84;
pub const PRODUCT_EMBEDDED_AUTOMOTIVE: u32 = 85;
pub const PRODUCT_EMBEDDED_INDUSTRY_A: u32 = 86;
pub const PRODUCT_THINPC: u32 = 87;
pub const PRODUCT_EMBEDDED_A: u32 = 88;
pub const PRODUCT_EMBEDDED_INDUSTRY: u32 = 89;
pub const PRODUCT_EMBEDDED_E: u32 = 90;
pub const PRODUCT_EMBEDDED_INDUSTRY_E: u32 = 91;
pub const PRODUCT_EMBEDDED_INDUSTRY_A_E: u32 = 92;
pub const PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER: u32 = 95;
pub const PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER: u32 = 96;
pub const PRODUCT_CORE_ARM: u32 = 97;
pub const PRODUCT_CORE_N: u32 = 98;
pub const PRODUCT_CORE_COUNTRYSPECIFIC: u32 = 99;
pub const PRODUCT_CORE_SINGLELANGUAGE: u32 = 100;
pub const PRODUCT_CORE_LANGUAGESPECIFIC: u32 = 100;
pub const PRODUCT_CORE: u32 = 101;
pub const PRODUCT_PROFESSIONAL_WMC: u32 = 103;
pub const PRODUCT_MOBILE_CORE: u32 = 104;
pub const PRODUCT_EMBEDDED_INDUSTRY_EVAL: u32 = 105;
pub const PRODUCT_EMBEDDED_INDUSTRY_E_EVAL: u32 = 106;
pub const PRODUCT_EMBEDDED_EVAL: u32 = 107;
pub const PRODUCT_EMBEDDED_E_EVAL: u32 = 108;
pub const PRODUCT_NANO_SERVER: u32 = 109;
pub const PRODUCT_CLOUD_STORAGE_SERVER: u32 = 110;
pub const PRODUCT_CORE_CONNECTED: u32 = 111;
pub const PRODUCT_PROFESSIONAL_STUDENT: u32 = 112;
pub const PRODUCT_CORE_CONNECTED_N: u32 = 113;
pub const PRODUCT_PROFESSIONAL_STUDENT_N: u32 = 114;
pub const PRODUCT_CORE_CONNECTED_SINGLELANGUAGE: u32 = 115;
pub const PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC: u32 = 116;
pub const PRODUCT_CONNECTED_CAR: u32 = 117;
pub const PRODUCT_INDUSTRY_HANDHELD: u32 = 118;
pub const PRODUCT_PPI_PRO: u32 = 119;
pub const PRODUCT_ARM64_SERVER: u32 = 120;
pub const PRODUCT_EDUCATION: u32 = 121;
pub const PRODUCT_EDUCATION_N: u32 = 122;
pub const PRODUCT_IOTUAP: u32 = 123;
pub const PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER: u32 = 124;
pub const PRODUCT_ENTERPRISE_S: u32 = 125;
pub const PRODUCT_ENTERPRISE_S_N: u32 = 126;
pub const PRODUCT_PROFESSIONAL_S: u32 = 127;
pub const PRODUCT_PROFESSIONAL_S_N: u32 = 128;
pub const PRODUCT_ENTERPRISE_S_EVALUATION: u32 = 129;
pub const PRODUCT_ENTERPRISE_S_N_EVALUATION: u32 = 130;
pub const PRODUCT_MOBILE_ENTERPRISE: u32 = 133;
pub const PRODUCT_UNLICENSED: u32 = 2882382797;
pub const LANG_NEUTRAL: u32 = 0;
pub const LANG_INVARIANT: u32 = 127;
pub const LANG_AFRIKAANS: u32 = 54;
pub const LANG_ALBANIAN: u32 = 28;
pub const LANG_ALSATIAN: u32 = 132;
pub const LANG_AMHARIC: u32 = 94;
pub const LANG_ARABIC: u32 = 1;
pub const LANG_ARMENIAN: u32 = 43;
pub const LANG_ASSAMESE: u32 = 77;
pub const LANG_AZERI: u32 = 44;
pub const LANG_AZERBAIJANI: u32 = 44;
pub const LANG_BANGLA: u32 = 69;
pub const LANG_BASHKIR: u32 = 109;
pub const LANG_BASQUE: u32 = 45;
pub const LANG_BELARUSIAN: u32 = 35;
pub const LANG_BENGALI: u32 = 69;
pub const LANG_BRETON: u32 = 126;
pub const LANG_BOSNIAN: u32 = 26;
pub const LANG_BOSNIAN_NEUTRAL: u32 = 30746;
pub const LANG_BULGARIAN: u32 = 2;
pub const LANG_CATALAN: u32 = 3;
pub const LANG_CENTRAL_KURDISH: u32 = 146;
pub const LANG_CHEROKEE: u32 = 92;
pub const LANG_CHINESE: u32 = 4;
pub const LANG_CHINESE_SIMPLIFIED: u32 = 4;
pub const LANG_CHINESE_TRADITIONAL: u32 = 31748;
pub const LANG_CORSICAN: u32 = 131;
pub const LANG_CROATIAN: u32 = 26;
pub const LANG_CZECH: u32 = 5;
pub const LANG_DANISH: u32 = 6;
pub const LANG_DARI: u32 = 140;
pub const LANG_DIVEHI: u32 = 101;
pub const LANG_DUTCH: u32 = 19;
pub const LANG_ENGLISH: u32 = 9;
pub const LANG_ESTONIAN: u32 = 37;
pub const LANG_FAEROESE: u32 = 56;
pub const LANG_FARSI: u32 = 41;
pub const LANG_FILIPINO: u32 = 100;
pub const LANG_FINNISH: u32 = 11;
pub const LANG_FRENCH: u32 = 12;
pub const LANG_FRISIAN: u32 = 98;
pub const LANG_FULAH: u32 = 103;
pub const LANG_GALICIAN: u32 = 86;
pub const LANG_GEORGIAN: u32 = 55;
pub const LANG_GERMAN: u32 = 7;
pub const LANG_GREEK: u32 = 8;
pub const LANG_GREENLANDIC: u32 = 111;
pub const LANG_GUJARATI: u32 = 71;
pub const LANG_HAUSA: u32 = 104;
pub const LANG_HEBREW: u32 = 13;
pub const LANG_HINDI: u32 = 57;
pub const LANG_HUNGARIAN: u32 = 14;
pub const LANG_ICELANDIC: u32 = 15;
pub const LANG_IGBO: u32 = 112;
pub const LANG_INDONESIAN: u32 = 33;
pub const LANG_INUKTITUT: u32 = 93;
pub const LANG_IRISH: u32 = 60;
pub const LANG_ITALIAN: u32 = 16;
pub const LANG_JAPANESE: u32 = 17;
pub const LANG_KANNADA: u32 = 75;
pub const LANG_KASHMIRI: u32 = 96;
pub const LANG_KAZAK: u32 = 63;
pub const LANG_KHMER: u32 = 83;
pub const LANG_KICHE: u32 = 134;
pub const LANG_KINYARWANDA: u32 = 135;
pub const LANG_KONKANI: u32 = 87;
pub const LANG_KOREAN: u32 = 18;
pub const LANG_KYRGYZ: u32 = 64;
pub const LANG_LAO: u32 = 84;
pub const LANG_LATVIAN: u32 = 38;
pub const LANG_LITHUANIAN: u32 = 39;
pub const LANG_LOWER_SORBIAN: u32 = 46;
pub const LANG_LUXEMBOURGISH: u32 = 110;
pub const LANG_MACEDONIAN: u32 = 47;
pub const LANG_MALAY: u32 = 62;
pub const LANG_MALAYALAM: u32 = 76;
pub const LANG_MALTESE: u32 = 58;
pub const LANG_MANIPURI: u32 = 88;
pub const LANG_MAORI: u32 = 129;
pub const LANG_MAPUDUNGUN: u32 = 122;
pub const LANG_MARATHI: u32 = 78;
pub const LANG_MOHAWK: u32 = 124;
pub const LANG_MONGOLIAN: u32 = 80;
pub const LANG_NEPALI: u32 = 97;
pub const LANG_NORWEGIAN: u32 = 20;
pub const LANG_OCCITAN: u32 = 130;
pub const LANG_ODIA: u32 = 72;
pub const LANG_ORIYA: u32 = 72;
pub const LANG_PASHTO: u32 = 99;
pub const LANG_PERSIAN: u32 = 41;
pub const LANG_POLISH: u32 = 21;
pub const LANG_PORTUGUESE: u32 = 22;
pub const LANG_PULAR: u32 = 103;
pub const LANG_PUNJABI: u32 = 70;
pub const LANG_QUECHUA: u32 = 107;
pub const LANG_ROMANIAN: u32 = 24;
pub const LANG_ROMANSH: u32 = 23;
pub const LANG_RUSSIAN: u32 = 25;
pub const LANG_SAKHA: u32 = 133;
pub const LANG_SAMI: u32 = 59;
pub const LANG_SANSKRIT: u32 = 79;
pub const LANG_SCOTTISH_GAELIC: u32 = 145;
pub const LANG_SERBIAN: u32 = 26;
pub const LANG_SERBIAN_NEUTRAL: u32 = 31770;
pub const LANG_SINDHI: u32 = 89;
pub const LANG_SINHALESE: u32 = 91;
pub const LANG_SLOVAK: u32 = 27;
pub const LANG_SLOVENIAN: u32 = 36;
pub const LANG_SOTHO: u32 = 108;
pub const LANG_SPANISH: u32 = 10;
pub const LANG_SWAHILI: u32 = 65;
pub const LANG_SWEDISH: u32 = 29;
pub const LANG_SYRIAC: u32 = 90;
pub const LANG_TAJIK: u32 = 40;
pub const LANG_TAMAZIGHT: u32 = 95;
pub const LANG_TAMIL: u32 = 73;
pub const LANG_TATAR: u32 = 68;
pub const LANG_TELUGU: u32 = 74;
pub const LANG_THAI: u32 = 30;
pub const LANG_TIBETAN: u32 = 81;
pub const LANG_TIGRIGNA: u32 = 115;
pub const LANG_TIGRINYA: u32 = 115;
pub const LANG_TSWANA: u32 = 50;
pub const LANG_TURKISH: u32 = 31;
pub const LANG_TURKMEN: u32 = 66;
pub const LANG_UIGHUR: u32 = 128;
pub const LANG_UKRAINIAN: u32 = 34;
pub const LANG_UPPER_SORBIAN: u32 = 46;
pub const LANG_URDU: u32 = 32;
pub const LANG_UZBEK: u32 = 67;
pub const LANG_VALENCIAN: u32 = 3;
pub const LANG_VIETNAMESE: u32 = 42;
pub const LANG_WELSH: u32 = 82;
pub const LANG_WOLOF: u32 = 136;
pub const LANG_XHOSA: u32 = 52;
pub const LANG_YAKUT: u32 = 133;
pub const LANG_YI: u32 = 120;
pub const LANG_YORUBA: u32 = 106;
pub const LANG_ZULU: u32 = 53;
pub const SUBLANG_NEUTRAL: u32 = 0;
pub const SUBLANG_DEFAULT: u32 = 1;
pub const SUBLANG_SYS_DEFAULT: u32 = 2;
pub const SUBLANG_CUSTOM_DEFAULT: u32 = 3;
pub const SUBLANG_CUSTOM_UNSPECIFIED: u32 = 4;
pub const SUBLANG_UI_CUSTOM_DEFAULT: u32 = 5;
pub const SUBLANG_AFRIKAANS_SOUTH_AFRICA: u32 = 1;
pub const SUBLANG_ALBANIAN_ALBANIA: u32 = 1;
pub const SUBLANG_ALSATIAN_FRANCE: u32 = 1;
pub const SUBLANG_AMHARIC_ETHIOPIA: u32 = 1;
pub const SUBLANG_ARABIC_SAUDI_ARABIA: u32 = 1;
pub const SUBLANG_ARABIC_IRAQ: u32 = 2;
pub const SUBLANG_ARABIC_EGYPT: u32 = 3;
pub const SUBLANG_ARABIC_LIBYA: u32 = 4;
pub const SUBLANG_ARABIC_ALGERIA: u32 = 5;
pub const SUBLANG_ARABIC_MOROCCO: u32 = 6;
pub const SUBLANG_ARABIC_TUNISIA: u32 = 7;
pub const SUBLANG_ARABIC_OMAN: u32 = 8;
pub const SUBLANG_ARABIC_YEMEN: u32 = 9;
pub const SUBLANG_ARABIC_SYRIA: u32 = 10;
pub const SUBLANG_ARABIC_JORDAN: u32 = 11;
pub const SUBLANG_ARABIC_LEBANON: u32 = 12;
pub const SUBLANG_ARABIC_KUWAIT: u32 = 13;
pub const SUBLANG_ARABIC_UAE: u32 = 14;
pub const SUBLANG_ARABIC_BAHRAIN: u32 = 15;
pub const SUBLANG_ARABIC_QATAR: u32 = 16;
pub const SUBLANG_ARMENIAN_ARMENIA: u32 = 1;
pub const SUBLANG_ASSAMESE_INDIA: u32 = 1;
pub const SUBLANG_AZERI_LATIN: u32 = 1;
pub const SUBLANG_AZERI_CYRILLIC: u32 = 2;
pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN: u32 = 1;
pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC: u32 = 2;
pub const SUBLANG_BANGLA_INDIA: u32 = 1;
pub const SUBLANG_BANGLA_BANGLADESH: u32 = 2;
pub const SUBLANG_BASHKIR_RUSSIA: u32 = 1;
pub const SUBLANG_BASQUE_BASQUE: u32 = 1;
pub const SUBLANG_BELARUSIAN_BELARUS: u32 = 1;
pub const SUBLANG_BENGALI_INDIA: u32 = 1;
pub const SUBLANG_BENGALI_BANGLADESH: u32 = 2;
pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN: u32 = 5;
pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC: u32 = 8;
pub const SUBLANG_BRETON_FRANCE: u32 = 1;
pub const SUBLANG_BULGARIAN_BULGARIA: u32 = 1;
pub const SUBLANG_CATALAN_CATALAN: u32 = 1;
pub const SUBLANG_CENTRAL_KURDISH_IRAQ: u32 = 1;
pub const SUBLANG_CHEROKEE_CHEROKEE: u32 = 1;
pub const SUBLANG_CHINESE_TRADITIONAL: u32 = 1;
pub const SUBLANG_CHINESE_SIMPLIFIED: u32 = 2;
pub const SUBLANG_CHINESE_HONGKONG: u32 = 3;
pub const SUBLANG_CHINESE_SINGAPORE: u32 = 4;
pub const SUBLANG_CHINESE_MACAU: u32 = 5;
pub const SUBLANG_CORSICAN_FRANCE: u32 = 1;
pub const SUBLANG_CZECH_CZECH_REPUBLIC: u32 = 1;
pub const SUBLANG_CROATIAN_CROATIA: u32 = 1;
pub const SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN: u32 = 4;
pub const SUBLANG_DANISH_DENMARK: u32 = 1;
pub const SUBLANG_DARI_AFGHANISTAN: u32 = 1;
pub const SUBLANG_DIVEHI_MALDIVES: u32 = 1;
pub const SUBLANG_DUTCH: u32 = 1;
pub const SUBLANG_DUTCH_BELGIAN: u32 = 2;
pub const SUBLANG_ENGLISH_US: u32 = 1;
pub const SUBLANG_ENGLISH_UK: u32 = 2;
pub const SUBLANG_ENGLISH_AUS: u32 = 3;
pub const SUBLANG_ENGLISH_CAN: u32 = 4;
pub const SUBLANG_ENGLISH_NZ: u32 = 5;
pub const SUBLANG_ENGLISH_IRELAND: u32 = 6;
pub const SUBLANG_ENGLISH_EIRE: u32 = 6;
pub const SUBLANG_ENGLISH_SOUTH_AFRICA: u32 = 7;
pub const SUBLANG_ENGLISH_JAMAICA: u32 = 8;
pub const SUBLANG_ENGLISH_CARIBBEAN: u32 = 9;
pub const SUBLANG_ENGLISH_BELIZE: u32 = 10;
pub const SUBLANG_ENGLISH_TRINIDAD: u32 = 11;
pub const SUBLANG_ENGLISH_ZIMBABWE: u32 = 12;
pub const SUBLANG_ENGLISH_PHILIPPINES: u32 = 13;
pub const SUBLANG_ENGLISH_INDIA: u32 = 16;
pub const SUBLANG_ENGLISH_MALAYSIA: u32 = 17;
pub const SUBLANG_ENGLISH_SINGAPORE: u32 = 18;
pub const SUBLANG_ESTONIAN_ESTONIA: u32 = 1;
pub const SUBLANG_FAEROESE_FAROE_ISLANDS: u32 = 1;
pub const SUBLANG_FILIPINO_PHILIPPINES: u32 = 1;
pub const SUBLANG_FINNISH_FINLAND: u32 = 1;
pub const SUBLANG_FRENCH: u32 = 1;
pub const SUBLANG_FRENCH_BELGIAN: u32 = 2;
pub const SUBLANG_FRENCH_CANADIAN: u32 = 3;
pub const SUBLANG_FRENCH_SWISS: u32 = 4;
pub const SUBLANG_FRENCH_LUXEMBOURG: u32 = 5;
pub const SUBLANG_FRENCH_MONACO: u32 = 6;
pub const SUBLANG_FRISIAN_NETHERLANDS: u32 = 1;
pub const SUBLANG_FULAH_SENEGAL: u32 = 2;
pub const SUBLANG_GALICIAN_GALICIAN: u32 = 1;
pub const SUBLANG_GEORGIAN_GEORGIA: u32 = 1;
pub const SUBLANG_GERMAN: u32 = 1;
pub const SUBLANG_GERMAN_SWISS: u32 = 2;
pub const SUBLANG_GERMAN_AUSTRIAN: u32 = 3;
pub const SUBLANG_GERMAN_LUXEMBOURG: u32 = 4;
pub const SUBLANG_GERMAN_LIECHTENSTEIN: u32 = 5;
pub const SUBLANG_GREEK_GREECE: u32 = 1;
pub const SUBLANG_GREENLANDIC_GREENLAND: u32 = 1;
pub const SUBLANG_GUJARATI_INDIA: u32 = 1;
pub const SUBLANG_HAUSA_NIGERIA_LATIN: u32 = 1;
pub const SUBLANG_HAUSA_NIGERIA: u32 = 1;
pub const SUBLANG_HAWAIIAN_US: u32 = 1;
pub const SUBLANG_HEBREW_ISRAEL: u32 = 1;
pub const SUBLANG_HINDI_INDIA: u32 = 1;
pub const SUBLANG_HUNGARIAN_HUNGARY: u32 = 1;
pub const SUBLANG_ICELANDIC_ICELAND: u32 = 1;
pub const SUBLANG_IGBO_NIGERIA: u32 = 1;
pub const SUBLANG_INDONESIAN_INDONESIA: u32 = 1;
pub const SUBLANG_INUKTITUT_CANADA: u32 = 1;
pub const SUBLANG_INUKTITUT_CANADA_LATIN: u32 = 2;
pub const SUBLANG_IRISH_IRELAND: u32 = 2;
pub const SUBLANG_ITALIAN: u32 = 1;
pub const SUBLANG_ITALIAN_SWISS: u32 = 2;
pub const SUBLANG_JAPANESE_JAPAN: u32 = 1;
pub const SUBLANG_KANNADA_INDIA: u32 = 1;
pub const SUBLANG_KASHMIRI_INDIA: u32 = 2;
pub const SUBLANG_KASHMIRI_SASIA: u32 = 2;
pub const SUBLANG_KAZAK_KAZAKHSTAN: u32 = 1;
pub const SUBLANG_KHMER_CAMBODIA: u32 = 1;
pub const SUBLANG_KICHE_GUATEMALA: u32 = 1;
pub const SUBLANG_KINYARWANDA_RWANDA: u32 = 1;
pub const SUBLANG_KONKANI_INDIA: u32 = 1;
pub const SUBLANG_KOREAN: u32 = 1;
pub const SUBLANG_KYRGYZ_KYRGYZSTAN: u32 = 1;
pub const SUBLANG_LAO_LAO: u32 = 1;
pub const SUBLANG_LAO_LAO_PDR: u32 = 1;
pub const SUBLANG_LATVIAN_LATVIA: u32 = 1;
pub const SUBLANG_LITHUANIAN: u32 = 1;
pub const SUBLANG_LOWER_SORBIAN_GERMANY: u32 = 2;
pub const SUBLANG_LUXEMBOURGISH_LUXEMBOURG: u32 = 1;
pub const SUBLANG_MACEDONIAN_MACEDONIA: u32 = 1;
pub const SUBLANG_MALAY_MALAYSIA: u32 = 1;
pub const SUBLANG_MALAY_BRUNEI_DARUSSALAM: u32 = 2;
pub const SUBLANG_MALAYALAM_INDIA: u32 = 1;
pub const SUBLANG_MALTESE_MALTA: u32 = 1;
pub const SUBLANG_MAORI_NEW_ZEALAND: u32 = 1;
pub const SUBLANG_MAPUDUNGUN_CHILE: u32 = 1;
pub const SUBLANG_MARATHI_INDIA: u32 = 1;
pub const SUBLANG_MOHAWK_MOHAWK: u32 = 1;
pub const SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA: u32 = 1;
pub const SUBLANG_MONGOLIAN_PRC: u32 = 2;
pub const SUBLANG_NEPALI_NEPAL: u32 = 1;
pub const SUBLANG_NEPALI_INDIA: u32 = 2;
pub const SUBLANG_NORWEGIAN_BOKMAL: u32 = 1;
pub const SUBLANG_NORWEGIAN_NYNORSK: u32 = 2;
pub const SUBLANG_OCCITAN_FRANCE: u32 = 1;
pub const SUBLANG_ORIYA_INDIA: u32 = 1;
pub const SUBLANG_PASHTO_AFGHANISTAN: u32 = 1;
pub const SUBLANG_PERSIAN_IRAN: u32 = 1;
pub const SUBLANG_POLISH_POLAND: u32 = 1;
pub const SUBLANG_PORTUGUESE_BRAZILIAN: u32 = 1;
pub const SUBLANG_PORTUGUESE: u32 = 2;
pub const SUBLANG_PULAR_SENEGAL: u32 = 2;
pub const SUBLANG_PUNJABI_INDIA: u32 = 1;
pub const SUBLANG_PUNJABI_PAKISTAN: u32 = 2;
pub const SUBLANG_QUECHUA_BOLIVIA: u32 = 1;
pub const SUBLANG_QUECHUA_ECUADOR: u32 = 2;
pub const SUBLANG_QUECHUA_PERU: u32 = 3;
pub const SUBLANG_ROMANIAN_ROMANIA: u32 = 1;
pub const SUBLANG_ROMANSH_SWITZERLAND: u32 = 1;
pub const SUBLANG_RUSSIAN_RUSSIA: u32 = 1;
pub const SUBLANG_SAKHA_RUSSIA: u32 = 1;
pub const SUBLANG_SAMI_NORTHERN_NORWAY: u32 = 1;
pub const SUBLANG_SAMI_NORTHERN_SWEDEN: u32 = 2;
pub const SUBLANG_SAMI_NORTHERN_FINLAND: u32 = 3;
pub const SUBLANG_SAMI_LULE_NORWAY: u32 = 4;
pub const SUBLANG_SAMI_LULE_SWEDEN: u32 = 5;
pub const SUBLANG_SAMI_SOUTHERN_NORWAY: u32 = 6;
pub const SUBLANG_SAMI_SOUTHERN_SWEDEN: u32 = 7;
pub const SUBLANG_SAMI_SKOLT_FINLAND: u32 = 8;
pub const SUBLANG_SAMI_INARI_FINLAND: u32 = 9;
pub const SUBLANG_SANSKRIT_INDIA: u32 = 1;
pub const SUBLANG_SCOTTISH_GAELIC: u32 = 1;
pub const SUBLANG_SERBIAN_LATIN: u32 = 2;
pub const SUBLANG_SERBIAN_CYRILLIC: u32 = 3;
pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN: u32 = 6;
pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC: u32 = 7;
pub const SUBLANG_SERBIAN_MONTENEGRO_LATIN: u32 = 11;
pub const SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC: u32 = 12;
pub const SUBLANG_SERBIAN_SERBIA_LATIN: u32 = 9;
pub const SUBLANG_SERBIAN_SERBIA_CYRILLIC: u32 = 10;
pub const SUBLANG_SINDHI_INDIA: u32 = 1;
pub const SUBLANG_SINDHI_AFGHANISTAN: u32 = 2;
pub const SUBLANG_SINDHI_PAKISTAN: u32 = 2;
pub const SUBLANG_SINHALESE_SRI_LANKA: u32 = 1;
pub const SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA: u32 = 1;
pub const SUBLANG_SLOVAK_SLOVAKIA: u32 = 1;
pub const SUBLANG_SLOVENIAN_SLOVENIA: u32 = 1;
pub const SUBLANG_SPANISH: u32 = 1;
pub const SUBLANG_SPANISH_MEXICAN: u32 = 2;
pub const SUBLANG_SPANISH_MODERN: u32 = 3;
pub const SUBLANG_SPANISH_GUATEMALA: u32 = 4;
pub const SUBLANG_SPANISH_COSTA_RICA: u32 = 5;
pub const SUBLANG_SPANISH_PANAMA: u32 = 6;
pub const SUBLANG_SPANISH_DOMINICAN_REPUBLIC: u32 = 7;
pub const SUBLANG_SPANISH_VENEZUELA: u32 = 8;
pub const SUBLANG_SPANISH_COLOMBIA: u32 = 9;
pub const SUBLANG_SPANISH_PERU: u32 = 10;
pub const SUBLANG_SPANISH_ARGENTINA: u32 = 11;
pub const SUBLANG_SPANISH_ECUADOR: u32 = 12;
pub const SUBLANG_SPANISH_CHILE: u32 = 13;
pub const SUBLANG_SPANISH_URUGUAY: u32 = 14;
pub const SUBLANG_SPANISH_PARAGUAY: u32 = 15;
pub const SUBLANG_SPANISH_BOLIVIA: u32 = 16;
pub const SUBLANG_SPANISH_EL_SALVADOR: u32 = 17;
pub const SUBLANG_SPANISH_HONDURAS: u32 = 18;
pub const SUBLANG_SPANISH_NICARAGUA: u32 = 19;
pub const SUBLANG_SPANISH_PUERTO_RICO: u32 = 20;
pub const SUBLANG_SPANISH_US: u32 = 21;
pub const SUBLANG_SWAHILI_KENYA: u32 = 1;
pub const SUBLANG_SWEDISH: u32 = 1;
pub const SUBLANG_SWEDISH_FINLAND: u32 = 2;
pub const SUBLANG_SYRIAC: u32 = 1;
pub const SUBLANG_SYRIAC_SYRIA: u32 = 1;
pub const SUBLANG_TAJIK_TAJIKISTAN: u32 = 1;
pub const SUBLANG_TAMAZIGHT_ALGERIA_LATIN: u32 = 2;
pub const SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH: u32 = 4;
pub const SUBLANG_TAMIL_INDIA: u32 = 1;
pub const SUBLANG_TAMIL_SRI_LANKA: u32 = 2;
pub const SUBLANG_TATAR_RUSSIA: u32 = 1;
pub const SUBLANG_TELUGU_INDIA: u32 = 1;
pub const SUBLANG_THAI_THAILAND: u32 = 1;
pub const SUBLANG_TIBETAN_PRC: u32 = 1;
pub const SUBLANG_TIBETAN_BHUTAN: u32 = 2;
pub const SUBLANG_TIGRIGNA_ERITREA: u32 = 2;
pub const SUBLANG_TIGRINYA_ERITREA: u32 = 2;
pub const SUBLANG_TIGRINYA_ETHIOPIA: u32 = 1;
pub const SUBLANG_TSWANA_BOTSWANA: u32 = 2;
pub const SUBLANG_TSWANA_SOUTH_AFRICA: u32 = 1;
pub const SUBLANG_TURKISH_TURKEY: u32 = 1;
pub const SUBLANG_TURKMEN_TURKMENISTAN: u32 = 1;
pub const SUBLANG_UIGHUR_PRC: u32 = 1;
pub const SUBLANG_UKRAINIAN_UKRAINE: u32 = 1;
pub const SUBLANG_UPPER_SORBIAN_GERMANY: u32 = 1;
pub const SUBLANG_URDU_PAKISTAN: u32 = 1;
pub const SUBLANG_URDU_INDIA: u32 = 2;
pub const SUBLANG_UZBEK_LATIN: u32 = 1;
pub const SUBLANG_UZBEK_CYRILLIC: u32 = 2;
pub const SUBLANG_VALENCIAN_VALENCIA: u32 = 2;
pub const SUBLANG_VIETNAMESE_VIETNAM: u32 = 1;
pub const SUBLANG_WELSH_UNITED_KINGDOM: u32 = 1;
pub const SUBLANG_WOLOF_SENEGAL: u32 = 1;
pub const SUBLANG_YORUBA_NIGERIA: u32 = 1;
pub const SUBLANG_XHOSA_SOUTH_AFRICA: u32 = 1;
pub const SUBLANG_YAKUT_RUSSIA: u32 = 1;
pub const SUBLANG_YI_PRC: u32 = 1;
pub const SUBLANG_ZULU_SOUTH_AFRICA: u32 = 1;
pub const SORT_DEFAULT: u32 = 0;
pub const SORT_INVARIANT_MATH: u32 = 1;
pub const SORT_JAPANESE_XJIS: u32 = 0;
pub const SORT_JAPANESE_UNICODE: u32 = 1;
pub const SORT_JAPANESE_RADICALSTROKE: u32 = 4;
pub const SORT_CHINESE_BIG5: u32 = 0;
pub const SORT_CHINESE_PRCP: u32 = 0;
pub const SORT_CHINESE_UNICODE: u32 = 1;
pub const SORT_CHINESE_PRC: u32 = 2;
pub const SORT_CHINESE_BOPOMOFO: u32 = 3;
pub const SORT_CHINESE_RADICALSTROKE: u32 = 4;
pub const SORT_KOREAN_KSC: u32 = 0;
pub const SORT_KOREAN_UNICODE: u32 = 1;
pub const SORT_GERMAN_PHONE_BOOK: u32 = 1;
pub const SORT_HUNGARIAN_DEFAULT: u32 = 0;
pub const SORT_HUNGARIAN_TECHNICAL: u32 = 1;
pub const SORT_GEORGIAN_TRADITIONAL: u32 = 0;
pub const SORT_GEORGIAN_MODERN: u32 = 1;
pub const NLS_VALID_LOCALE_MASK: u32 = 1048575;
pub const LOCALE_NAME_MAX_LENGTH: u32 = 85;
pub const MAXIMUM_WAIT_OBJECTS: u32 = 64;
pub const MAXIMUM_SUSPEND_COUNT: u32 = 127;
pub const _MM_HINT_ET0: u32 = 7;
pub const _MM_HINT_ET1: u32 = 6;
pub const _MM_HINT_T0: u32 = 3;
pub const _MM_HINT_T1: u32 = 2;
pub const _MM_HINT_T2: u32 = 1;
pub const _MM_HINT_NTA: u32 = 0;
pub const _MM_EXCEPT_INVALID: u32 = 1;
pub const _MM_EXCEPT_DENORM: u32 = 2;
pub const _MM_EXCEPT_DIV_ZERO: u32 = 4;
pub const _MM_EXCEPT_OVERFLOW: u32 = 8;
pub const _MM_EXCEPT_UNDERFLOW: u32 = 16;
pub const _MM_EXCEPT_INEXACT: u32 = 32;
pub const _MM_EXCEPT_MASK: u32 = 63;
pub const _MM_MASK_INVALID: u32 = 128;
pub const _MM_MASK_DENORM: u32 = 256;
pub const _MM_MASK_DIV_ZERO: u32 = 512;
pub const _MM_MASK_OVERFLOW: u32 = 1024;
pub const _MM_MASK_UNDERFLOW: u32 = 2048;
pub const _MM_MASK_INEXACT: u32 = 4096;
pub const _MM_MASK_MASK: u32 = 8064;
pub const _MM_ROUND_NEAREST: u32 = 0;
pub const _MM_ROUND_DOWN: u32 = 8192;
pub const _MM_ROUND_UP: u32 = 16384;
pub const _MM_ROUND_TOWARD_ZERO: u32 = 24576;
pub const _MM_ROUND_MASK: u32 = 24576;
pub const _MM_FLUSH_ZERO_MASK: u32 = 32768;
pub const _MM_FLUSH_ZERO_ON: u32 = 32768;
pub const _MM_FLUSH_ZERO_OFF: u32 = 0;
pub const _MM_DENORMALS_ZERO_ON: u32 = 64;
pub const _MM_DENORMALS_ZERO_OFF: u32 = 0;
pub const _MM_DENORMALS_ZERO_MASK: u32 = 64;
pub const _MM_FROUND_TO_NEAREST_INT: u32 = 0;
pub const _MM_FROUND_TO_NEG_INF: u32 = 1;
pub const _MM_FROUND_TO_POS_INF: u32 = 2;
pub const _MM_FROUND_TO_ZERO: u32 = 3;
pub const _MM_FROUND_CUR_DIRECTION: u32 = 4;
pub const _MM_FROUND_RAISE_EXC: u32 = 0;
pub const _MM_FROUND_NO_EXC: u32 = 8;
pub const _MM_FROUND_NINT: u32 = 0;
pub const _MM_FROUND_FLOOR: u32 = 1;
pub const _MM_FROUND_CEIL: u32 = 2;
pub const _MM_FROUND_TRUNC: u32 = 3;
pub const _MM_FROUND_RINT: u32 = 4;
pub const _MM_FROUND_NEARBYINT: u32 = 12;
pub const _SIDD_UBYTE_OPS: u32 = 0;
pub const _SIDD_UWORD_OPS: u32 = 1;
pub const _SIDD_SBYTE_OPS: u32 = 2;
pub const _SIDD_SWORD_OPS: u32 = 3;
pub const _SIDD_CMP_EQUAL_ANY: u32 = 0;
pub const _SIDD_CMP_RANGES: u32 = 4;
pub const _SIDD_CMP_EQUAL_EACH: u32 = 8;
pub const _SIDD_CMP_EQUAL_ORDERED: u32 = 12;
pub const _SIDD_POSITIVE_POLARITY: u32 = 0;
pub const _SIDD_NEGATIVE_POLARITY: u32 = 16;
pub const _SIDD_MASKED_POSITIVE_POLARITY: u32 = 32;
pub const _SIDD_MASKED_NEGATIVE_POLARITY: u32 = 48;
pub const _SIDD_LEAST_SIGNIFICANT: u32 = 0;
pub const _SIDD_MOST_SIGNIFICANT: u32 = 64;
pub const _SIDD_BIT_MASK: u32 = 0;
pub const _SIDD_UNIT_MASK: u32 = 64;
pub const _CMP_EQ_OQ: u32 = 0;
pub const _CMP_LT_OS: u32 = 1;
pub const _CMP_LE_OS: u32 = 2;
pub const _CMP_UNORD_Q: u32 = 3;
pub const _CMP_NEQ_UQ: u32 = 4;
pub const _CMP_NLT_US: u32 = 5;
pub const _CMP_NLE_US: u32 = 6;
pub const _CMP_ORD_Q: u32 = 7;
pub const _CMP_EQ_UQ: u32 = 8;
pub const _CMP_NGE_US: u32 = 9;
pub const _CMP_NGT_US: u32 = 10;
pub const _CMP_FALSE_OQ: u32 = 11;
pub const _CMP_NEQ_OQ: u32 = 12;
pub const _CMP_GE_OS: u32 = 13;
pub const _CMP_GT_OS: u32 = 14;
pub const _CMP_TRUE_UQ: u32 = 15;
pub const _CMP_EQ_OS: u32 = 16;
pub const _CMP_LT_OQ: u32 = 17;
pub const _CMP_LE_OQ: u32 = 18;
pub const _CMP_UNORD_S: u32 = 19;
pub const _CMP_NEQ_US: u32 = 20;
pub const _CMP_NLT_UQ: u32 = 21;
pub const _CMP_NLE_UQ: u32 = 22;
pub const _CMP_ORD_S: u32 = 23;
pub const _CMP_EQ_US: u32 = 24;
pub const _CMP_NGE_UQ: u32 = 25;
pub const _CMP_NGT_UQ: u32 = 26;
pub const _CMP_FALSE_OS: u32 = 27;
pub const _CMP_NEQ_OS: u32 = 28;
pub const _CMP_GE_OQ: u32 = 29;
pub const _CMP_GT_OQ: u32 = 30;
pub const _CMP_TRUE_US: u32 = 31;
pub const _XBEGIN_STARTED: i32 = -1;
pub const _XABORT_EXPLICIT: u32 = 1;
pub const _XABORT_RETRY: u32 = 2;
pub const _XABORT_CONFLICT: u32 = 4;
pub const _XABORT_CAPACITY: u32 = 8;
pub const _XABORT_DEBUG: u32 = 16;
pub const _XABORT_NESTED: u32 = 32;
pub const __PCONFIG_KEY_PROGRAM: u32 = 1;
pub const _MM_PCOMCTRL_LT: u32 = 0;
pub const _MM_PCOMCTRL_LE: u32 = 1;
pub const _MM_PCOMCTRL_GT: u32 = 2;
pub const _MM_PCOMCTRL_GE: u32 = 3;
pub const _MM_PCOMCTRL_EQ: u32 = 4;
pub const _MM_PCOMCTRL_NEQ: u32 = 5;
pub const _MM_PCOMCTRL_FALSE: u32 = 6;
pub const _MM_PCOMCTRL_TRUE: u32 = 7;
pub const PF_TEMPORAL_LEVEL_1: u32 = 3;
pub const PF_TEMPORAL_LEVEL_2: u32 = 2;
pub const PF_TEMPORAL_LEVEL_3: u32 = 1;
pub const PF_NON_TEMPORAL_LEVEL_ALL: u32 = 0;
pub const EXCEPTION_READ_FAULT: u32 = 0;
pub const EXCEPTION_WRITE_FAULT: u32 = 1;
pub const EXCEPTION_EXECUTE_FAULT: u32 = 8;
pub const CONTEXT_AMD64: u32 = 1048576;
pub const CONTEXT_EXCEPTION_ACTIVE: u32 = 134217728;
pub const CONTEXT_SERVICE_ACTIVE: u32 = 268435456;
pub const CONTEXT_EXCEPTION_REQUEST: u32 = 1073741824;
pub const CONTEXT_EXCEPTION_REPORTING: u32 = 2147483648;
pub const INITIAL_MXCSR: u32 = 8064;
pub const INITIAL_FPCSR: u32 = 639;
pub const RUNTIME_FUNCTION_INDIRECT: u32 = 1;
pub const OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME: &'static [u8; 34usize] =
    b"OutOfProcessFunctionTableCallback\0";
pub const UNW_FLAG_NHANDLER: u32 = 0;
pub const UNW_FLAG_EHANDLER: u32 = 1;
pub const UNW_FLAG_UHANDLER: u32 = 2;
pub const UNW_FLAG_CHAININFO: u32 = 4;
pub const EXCEPTION_NONCONTINUABLE: u32 = 1;
pub const EXCEPTION_UNWINDING: u32 = 2;
pub const EXCEPTION_EXIT_UNWIND: u32 = 4;
pub const EXCEPTION_STACK_INVALID: u32 = 8;
pub const EXCEPTION_NESTED_CALL: u32 = 16;
pub const EXCEPTION_TARGET_UNWIND: u32 = 32;
pub const EXCEPTION_COLLIDED_UNWIND: u32 = 64;
pub const EXCEPTION_UNWIND: u32 = 102;
pub const EXCEPTION_MAXIMUM_PARAMETERS: u32 = 15;
pub const UNWIND_HISTORY_TABLE_SIZE: u32 = 12;
pub const UNWIND_HISTORY_TABLE_NONE: u32 = 0;
pub const UNWIND_HISTORY_TABLE_GLOBAL: u32 = 1;
pub const UNWIND_HISTORY_TABLE_LOCAL: u32 = 2;
pub const SID_REVISION: u32 = 1;
pub const SID_MAX_SUB_AUTHORITIES: u32 = 15;
pub const SID_RECOMMENDED_SUB_AUTHORITIES: u32 = 1;
pub const SID_HASH_SIZE: u32 = 32;
pub const SECURITY_TRUSTED_INSTALLER_RID1: u32 = 956008885;
pub const SECURITY_TRUSTED_INSTALLER_RID2: u32 = 3418522649;
pub const SECURITY_TRUSTED_INSTALLER_RID3: u32 = 1831038044;
pub const SECURITY_TRUSTED_INSTALLER_RID4: u32 = 1853292631;
pub const SECURITY_TRUSTED_INSTALLER_RID5: u32 = 2271478464;
pub const ACL_REVISION: u32 = 2;
pub const ACL_REVISION_DS: u32 = 4;
pub const ACL_REVISION1: u32 = 1;
pub const ACL_REVISION2: u32 = 2;
pub const ACL_REVISION3: u32 = 3;
pub const ACL_REVISION4: u32 = 4;
pub const MAX_ACL_REVISION: u32 = 4;
pub const ACCESS_MIN_MS_ACE_TYPE: u32 = 0;
pub const ACCESS_ALLOWED_ACE_TYPE: u32 = 0;
pub const ACCESS_DENIED_ACE_TYPE: u32 = 1;
pub const SYSTEM_AUDIT_ACE_TYPE: u32 = 2;
pub const SYSTEM_ALARM_ACE_TYPE: u32 = 3;
pub const ACCESS_MAX_MS_V2_ACE_TYPE: u32 = 3;
pub const ACCESS_ALLOWED_COMPOUND_ACE_TYPE: u32 = 4;
pub const ACCESS_MAX_MS_V3_ACE_TYPE: u32 = 4;
pub const ACCESS_MIN_MS_OBJECT_ACE_TYPE: u32 = 5;
pub const ACCESS_ALLOWED_OBJECT_ACE_TYPE: u32 = 5;
pub const ACCESS_DENIED_OBJECT_ACE_TYPE: u32 = 6;
pub const SYSTEM_AUDIT_OBJECT_ACE_TYPE: u32 = 7;
pub const SYSTEM_ALARM_OBJECT_ACE_TYPE: u32 = 8;
pub const ACCESS_MAX_MS_OBJECT_ACE_TYPE: u32 = 8;
pub const ACCESS_MAX_MS_V4_ACE_TYPE: u32 = 8;
pub const ACCESS_MAX_MS_ACE_TYPE: u32 = 8;
pub const ACCESS_ALLOWED_CALLBACK_ACE_TYPE: u32 = 9;
pub const ACCESS_DENIED_CALLBACK_ACE_TYPE: u32 = 10;
pub const ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE: u32 = 11;
pub const ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE: u32 = 12;
pub const SYSTEM_AUDIT_CALLBACK_ACE_TYPE: u32 = 13;
pub const SYSTEM_ALARM_CALLBACK_ACE_TYPE: u32 = 14;
pub const SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE: u32 = 15;
pub const SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE: u32 = 16;
pub const SYSTEM_MANDATORY_LABEL_ACE_TYPE: u32 = 17;
pub const SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE: u32 = 18;
pub const SYSTEM_SCOPED_POLICY_ID_ACE_TYPE: u32 = 19;
pub const ACCESS_MAX_MS_V5_ACE_TYPE: u32 = 19;
pub const OBJECT_INHERIT_ACE: u32 = 1;
pub const CONTAINER_INHERIT_ACE: u32 = 2;
pub const NO_PROPAGATE_INHERIT_ACE: u32 = 4;
pub const INHERIT_ONLY_ACE: u32 = 8;
pub const INHERITED_ACE: u32 = 16;
pub const VALID_INHERIT_FLAGS: u32 = 31;
pub const SUCCESSFUL_ACCESS_ACE_FLAG: u32 = 64;
pub const FAILED_ACCESS_ACE_FLAG: u32 = 128;
pub const SYSTEM_MANDATORY_LABEL_NO_WRITE_UP: u32 = 1;
pub const SYSTEM_MANDATORY_LABEL_NO_READ_UP: u32 = 2;
pub const SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP: u32 = 4;
pub const SYSTEM_MANDATORY_LABEL_VALID_MASK: u32 = 7;
pub const ACE_OBJECT_TYPE_PRESENT: u32 = 1;
pub const ACE_INHERITED_OBJECT_TYPE_PRESENT: u32 = 2;
pub const SECURITY_DESCRIPTOR_REVISION: u32 = 1;
pub const SECURITY_DESCRIPTOR_REVISION1: u32 = 1;
pub const SE_OWNER_DEFAULTED: u32 = 1;
pub const SE_GROUP_DEFAULTED: u32 = 2;
pub const SE_DACL_PRESENT: u32 = 4;
pub const SE_DACL_DEFAULTED: u32 = 8;
pub const SE_SACL_PRESENT: u32 = 16;
pub const SE_SACL_DEFAULTED: u32 = 32;
pub const SE_DACL_AUTO_INHERIT_REQ: u32 = 256;
pub const SE_SACL_AUTO_INHERIT_REQ: u32 = 512;
pub const SE_DACL_AUTO_INHERITED: u32 = 1024;
pub const SE_SACL_AUTO_INHERITED: u32 = 2048;
pub const SE_DACL_PROTECTED: u32 = 4096;
pub const SE_SACL_PROTECTED: u32 = 8192;
pub const SE_RM_CONTROL_VALID: u32 = 16384;
pub const SE_SELF_RELATIVE: u32 = 32768;
pub const ACCESS_OBJECT_GUID: u32 = 0;
pub const ACCESS_PROPERTY_SET_GUID: u32 = 1;
pub const ACCESS_PROPERTY_GUID: u32 = 2;
pub const ACCESS_MAX_LEVEL: u32 = 4;
pub const AUDIT_ALLOW_NO_PRIVILEGE: u32 = 1;
pub const ACCESS_DS_SOURCE_A: &'static [u8; 3usize] = b"DS\0";
pub const ACCESS_DS_SOURCE_W: &'static [u8; 3usize] = b"DS\0";
pub const ACCESS_DS_OBJECT_TYPE_NAME_A: &'static [u8; 25usize] = b"Directory Service Object\0";
pub const ACCESS_DS_OBJECT_TYPE_NAME_W: &'static [u8; 25usize] = b"Directory Service Object\0";
pub const SE_PRIVILEGE_REMOVED: u32 = 4;
pub const PRIVILEGE_SET_ALL_NECESSARY: u32 = 1;
pub const ACCESS_REASON_TYPE_MASK: u32 = 16711680;
pub const ACCESS_REASON_DATA_MASK: u32 = 65535;
pub const ACCESS_REASON_STAGING_MASK: u32 = 2147483648;
pub const ACCESS_REASON_EXDATA_MASK: u32 = 2130706432;
pub const SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE: u32 = 1;
pub const SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE: u32 = 2;
pub const SE_SECURITY_DESCRIPTOR_VALID_FLAGS: u32 = 3;
pub const TOKEN_ASSIGN_PRIMARY: u32 = 1;
pub const TOKEN_DUPLICATE: u32 = 2;
pub const TOKEN_IMPERSONATE: u32 = 4;
pub const TOKEN_QUERY: u32 = 8;
pub const TOKEN_QUERY_SOURCE: u32 = 16;
pub const TOKEN_ADJUST_PRIVILEGES: u32 = 32;
pub const TOKEN_ADJUST_GROUPS: u32 = 64;
pub const TOKEN_ADJUST_DEFAULT: u32 = 128;
pub const TOKEN_ADJUST_SESSIONID: u32 = 256;
pub const TOKEN_MANDATORY_POLICY_OFF: u32 = 0;
pub const TOKEN_MANDATORY_POLICY_NO_WRITE_UP: u32 = 1;
pub const TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN: u32 = 2;
pub const TOKEN_MANDATORY_POLICY_VALID_MASK: u32 = 3;
pub const POLICY_AUDIT_SUBCATEGORY_COUNT: u32 = 56;
pub const TOKEN_SOURCE_LENGTH: u32 = 8;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_INVALID: u32 = 0;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64: u32 = 1;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64: u32 = 2;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING: u32 = 3;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_FQBN: u32 = 4;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_SID: u32 = 5;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN: u32 = 6;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING: u32 = 16;
pub const CLAIM_SECURITY_ATTRIBUTE_NON_INHERITABLE: u32 = 1;
pub const CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE: u32 = 2;
pub const CLAIM_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY: u32 = 4;
pub const CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT: u32 = 8;
pub const CLAIM_SECURITY_ATTRIBUTE_DISABLED: u32 = 16;
pub const CLAIM_SECURITY_ATTRIBUTE_MANDATORY: u32 = 32;
pub const CLAIM_SECURITY_ATTRIBUTE_VALID_FLAGS: u32 = 63;
pub const CLAIM_SECURITY_ATTRIBUTE_CUSTOM_FLAGS: u32 = 4294901760;
pub const CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1: u32 = 1;
pub const CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION: u32 = 1;
pub const SECURITY_DYNAMIC_TRACKING: u32 = 1;
pub const SECURITY_STATIC_TRACKING: u32 = 0;
pub const DISABLE_MAX_PRIVILEGE: u32 = 1;
pub const SANDBOX_INERT: u32 = 2;
pub const LUA_TOKEN: u32 = 4;
pub const WRITE_RESTRICTED: u32 = 8;
pub const SE_LEARNING_MODE_FLAG_PERMISSIVE: u32 = 1;
pub const PROCESS_TERMINATE: u32 = 1;
pub const PROCESS_CREATE_THREAD: u32 = 2;
pub const PROCESS_SET_SESSIONID: u32 = 4;
pub const PROCESS_VM_OPERATION: u32 = 8;
pub const PROCESS_VM_READ: u32 = 16;
pub const PROCESS_VM_WRITE: u32 = 32;
pub const PROCESS_DUP_HANDLE: u32 = 64;
pub const PROCESS_CREATE_PROCESS: u32 = 128;
pub const PROCESS_SET_QUOTA: u32 = 256;
pub const PROCESS_SET_INFORMATION: u32 = 512;
pub const PROCESS_QUERY_INFORMATION: u32 = 1024;
pub const PROCESS_SUSPEND_RESUME: u32 = 2048;
pub const PROCESS_QUERY_LIMITED_INFORMATION: u32 = 4096;
pub const MAXIMUM_PROC_PER_GROUP: u32 = 64;
pub const MAXIMUM_PROCESSORS: u32 = 64;
pub const THREAD_TERMINATE: u32 = 1;
pub const THREAD_SUSPEND_RESUME: u32 = 2;
pub const THREAD_GET_CONTEXT: u32 = 8;
pub const THREAD_SET_CONTEXT: u32 = 16;
pub const THREAD_SET_INFORMATION: u32 = 32;
pub const THREAD_QUERY_INFORMATION: u32 = 64;
pub const THREAD_SET_THREAD_TOKEN: u32 = 128;
pub const THREAD_IMPERSONATE: u32 = 256;
pub const THREAD_DIRECT_IMPERSONATION: u32 = 512;
pub const THREAD_SET_LIMITED_INFORMATION: u32 = 1024;
pub const THREAD_QUERY_LIMITED_INFORMATION: u32 = 2048;
pub const JOB_OBJECT_ASSIGN_PROCESS: u32 = 1;
pub const JOB_OBJECT_SET_ATTRIBUTES: u32 = 2;
pub const JOB_OBJECT_QUERY: u32 = 4;
pub const JOB_OBJECT_TERMINATE: u32 = 8;
pub const JOB_OBJECT_SET_SECURITY_ATTRIBUTES: u32 = 16;
pub const FLS_MAXIMUM_AVAILABLE: u32 = 128;
pub const TLS_MINIMUM_AVAILABLE: u32 = 64;
pub const THREAD_BASE_PRIORITY_LOWRT: u32 = 15;
pub const THREAD_BASE_PRIORITY_MAX: u32 = 2;
pub const THREAD_BASE_PRIORITY_MIN: i32 = -2;
pub const THREAD_BASE_PRIORITY_IDLE: i32 = -15;
pub const QUOTA_LIMITS_HARDWS_MIN_ENABLE: u32 = 1;
pub const QUOTA_LIMITS_HARDWS_MIN_DISABLE: u32 = 2;
pub const QUOTA_LIMITS_HARDWS_MAX_ENABLE: u32 = 4;
pub const QUOTA_LIMITS_HARDWS_MAX_DISABLE: u32 = 8;
pub const QUOTA_LIMITS_USE_DEFAULT_LIMITS: u32 = 16;
pub const MAX_HW_COUNTERS: u32 = 16;
pub const THREAD_PROFILING_FLAG_DISPATCH: u32 = 1;
pub const JOB_OBJECT_TERMINATE_AT_END_OF_JOB: u32 = 0;
pub const JOB_OBJECT_POST_AT_END_OF_JOB: u32 = 1;
pub const JOB_OBJECT_MSG_END_OF_JOB_TIME: u32 = 1;
pub const JOB_OBJECT_MSG_END_OF_PROCESS_TIME: u32 = 2;
pub const JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT: u32 = 3;
pub const JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO: u32 = 4;
pub const JOB_OBJECT_MSG_NEW_PROCESS: u32 = 6;
pub const JOB_OBJECT_MSG_EXIT_PROCESS: u32 = 7;
pub const JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS: u32 = 8;
pub const JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT: u32 = 9;
pub const JOB_OBJECT_MSG_JOB_MEMORY_LIMIT: u32 = 10;
pub const JOB_OBJECT_MSG_NOTIFICATION_LIMIT: u32 = 11;
pub const JOB_OBJECT_MSG_JOB_CYCLE_TIME_LIMIT: u32 = 12;
pub const JOB_OBJECT_MSG_MINIMUM: u32 = 1;
pub const JOB_OBJECT_MSG_MAXIMUM: u32 = 12;
pub const JOB_OBJECT_LIMIT_WORKINGSET: u32 = 1;
pub const JOB_OBJECT_LIMIT_PROCESS_TIME: u32 = 2;
pub const JOB_OBJECT_LIMIT_JOB_TIME: u32 = 4;
pub const JOB_OBJECT_LIMIT_ACTIVE_PROCESS: u32 = 8;
pub const JOB_OBJECT_LIMIT_AFFINITY: u32 = 16;
pub const JOB_OBJECT_LIMIT_PRIORITY_CLASS: u32 = 32;
pub const JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME: u32 = 64;
pub const JOB_OBJECT_LIMIT_SCHEDULING_CLASS: u32 = 128;
pub const JOB_OBJECT_LIMIT_PROCESS_MEMORY: u32 = 256;
pub const JOB_OBJECT_LIMIT_JOB_MEMORY: u32 = 512;
pub const JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION: u32 = 1024;
pub const JOB_OBJECT_LIMIT_BREAKAWAY_OK: u32 = 2048;
pub const JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK: u32 = 4096;
pub const JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE: u32 = 8192;
pub const JOB_OBJECT_LIMIT_SUBSET_AFFINITY: u32 = 16384;
pub const JOB_OBJECT_LIMIT_RESERVED3: u32 = 32768;
pub const JOB_OBJECT_LIMIT_JOB_READ_BYTES: u32 = 65536;
pub const JOB_OBJECT_LIMIT_JOB_WRITE_BYTES: u32 = 131072;
pub const JOB_OBJECT_LIMIT_RATE_CONTROL: u32 = 262144;
pub const JOB_OBJECT_LIMIT_RESERVED4: u32 = 65536;
pub const JOB_OBJECT_LIMIT_RESERVED5: u32 = 131072;
pub const JOB_OBJECT_LIMIT_RESERVED6: u32 = 262144;
pub const JOB_OBJECT_LIMIT_VALID_FLAGS: u32 = 524287;
pub const JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS: u32 = 255;
pub const JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS: u32 = 32767;
pub const JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS: u32 = 524287;
pub const JOB_OBJECT_NOTIFICATION_LIMIT_VALID_FLAGS: u32 = 459268;
pub const JOB_OBJECT_UILIMIT_NONE: u32 = 0;
pub const JOB_OBJECT_UILIMIT_HANDLES: u32 = 1;
pub const JOB_OBJECT_UILIMIT_READCLIPBOARD: u32 = 2;
pub const JOB_OBJECT_UILIMIT_WRITECLIPBOARD: u32 = 4;
pub const JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS: u32 = 8;
pub const JOB_OBJECT_UILIMIT_DISPLAYSETTINGS: u32 = 16;
pub const JOB_OBJECT_UILIMIT_GLOBALATOMS: u32 = 32;
pub const JOB_OBJECT_UILIMIT_DESKTOP: u32 = 64;
pub const JOB_OBJECT_UILIMIT_EXITWINDOWS: u32 = 128;
pub const JOB_OBJECT_UILIMIT_ALL: u32 = 255;
pub const JOB_OBJECT_UI_VALID_FLAGS: u32 = 255;
pub const JOB_OBJECT_SECURITY_NO_ADMIN: u32 = 1;
pub const JOB_OBJECT_SECURITY_RESTRICTED_TOKEN: u32 = 2;
pub const JOB_OBJECT_SECURITY_ONLY_TOKEN: u32 = 4;
pub const JOB_OBJECT_SECURITY_FILTER_TOKENS: u32 = 8;
pub const JOB_OBJECT_SECURITY_VALID_FLAGS: u32 = 15;
pub const JOB_OBJECT_CPU_RATE_CONTROL_ENABLE: u32 = 1;
pub const JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED: u32 = 2;
pub const JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP: u32 = 4;
pub const JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY: u32 = 8;
pub const JOB_OBJECT_CPU_RATE_CONTROL_VALID_FLAGS: u32 = 15;
pub const EVENT_MODIFY_STATE: u32 = 2;
pub const MUTANT_QUERY_STATE: u32 = 1;
pub const SEMAPHORE_MODIFY_STATE: u32 = 2;
pub const TIMER_QUERY_STATE: u32 = 1;
pub const TIMER_MODIFY_STATE: u32 = 2;
pub const TIME_ZONE_ID_UNKNOWN: u32 = 0;
pub const TIME_ZONE_ID_STANDARD: u32 = 1;
pub const TIME_ZONE_ID_DAYLIGHT: u32 = 2;
pub const LTP_PC_SMT: u32 = 1;
pub const CACHE_FULLY_ASSOCIATIVE: u32 = 255;
pub const PROCESSOR_INTEL_386: u32 = 386;
pub const PROCESSOR_INTEL_486: u32 = 486;
pub const PROCESSOR_INTEL_PENTIUM: u32 = 586;
pub const PROCESSOR_INTEL_IA64: u32 = 2200;
pub const PROCESSOR_AMD_X8664: u32 = 8664;
pub const PROCESSOR_MIPS_R4000: u32 = 4000;
pub const PROCESSOR_ALPHA_21064: u32 = 21064;
pub const PROCESSOR_PPC_601: u32 = 601;
pub const PROCESSOR_PPC_603: u32 = 603;
pub const PROCESSOR_PPC_604: u32 = 604;
pub const PROCESSOR_PPC_620: u32 = 620;
pub const PROCESSOR_HITACHI_SH3: u32 = 10003;
pub const PROCESSOR_HITACHI_SH3E: u32 = 10004;
pub const PROCESSOR_HITACHI_SH4: u32 = 10005;
pub const PROCESSOR_MOTOROLA_821: u32 = 821;
pub const PROCESSOR_SHx_SH3: u32 = 103;
pub const PROCESSOR_SHx_SH4: u32 = 104;
pub const PROCESSOR_STRONGARM: u32 = 2577;
pub const PROCESSOR_ARM720: u32 = 1824;
pub const PROCESSOR_ARM820: u32 = 2080;
pub const PROCESSOR_ARM920: u32 = 2336;
pub const PROCESSOR_ARM_7TDMI: u32 = 70001;
pub const PROCESSOR_OPTIL: u32 = 18767;
pub const PROCESSOR_ARCHITECTURE_INTEL: u32 = 0;
pub const PROCESSOR_ARCHITECTURE_MIPS: u32 = 1;
pub const PROCESSOR_ARCHITECTURE_ALPHA: u32 = 2;
pub const PROCESSOR_ARCHITECTURE_PPC: u32 = 3;
pub const PROCESSOR_ARCHITECTURE_SHX: u32 = 4;
pub const PROCESSOR_ARCHITECTURE_ARM: u32 = 5;
pub const PROCESSOR_ARCHITECTURE_IA64: u32 = 6;
pub const PROCESSOR_ARCHITECTURE_ALPHA64: u32 = 7;
pub const PROCESSOR_ARCHITECTURE_MSIL: u32 = 8;
pub const PROCESSOR_ARCHITECTURE_AMD64: u32 = 9;
pub const PROCESSOR_ARCHITECTURE_IA32_ON_WIN64: u32 = 10;
pub const PROCESSOR_ARCHITECTURE_NEUTRAL: u32 = 11;
pub const PROCESSOR_ARCHITECTURE_ARM64: u32 = 12;
pub const PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64: u32 = 13;
pub const PROCESSOR_ARCHITECTURE_IA32_ON_ARM64: u32 = 14;
pub const PROCESSOR_ARCHITECTURE_UNKNOWN: u32 = 65535;
pub const PF_FLOATING_POINT_PRECISION_ERRATA: u32 = 0;
pub const PF_FLOATING_POINT_EMULATED: u32 = 1;
pub const PF_COMPARE_EXCHANGE_DOUBLE: u32 = 2;
pub const PF_MMX_INSTRUCTIONS_AVAILABLE: u32 = 3;
pub const PF_PPC_MOVEMEM_64BIT_OK: u32 = 4;
pub const PF_ALPHA_BYTE_INSTRUCTIONS: u32 = 5;
pub const PF_XMMI_INSTRUCTIONS_AVAILABLE: u32 = 6;
pub const PF_3DNOW_INSTRUCTIONS_AVAILABLE: u32 = 7;
pub const PF_RDTSC_INSTRUCTION_AVAILABLE: u32 = 8;
pub const PF_PAE_ENABLED: u32 = 9;
pub const PF_XMMI64_INSTRUCTIONS_AVAILABLE: u32 = 10;
pub const PF_SSE_DAZ_MODE_AVAILABLE: u32 = 11;
pub const PF_NX_ENABLED: u32 = 12;
pub const PF_SSE3_INSTRUCTIONS_AVAILABLE: u32 = 13;
pub const PF_COMPARE_EXCHANGE128: u32 = 14;
pub const PF_COMPARE64_EXCHANGE128: u32 = 15;
pub const PF_CHANNELS_ENABLED: u32 = 16;
pub const PF_XSAVE_ENABLED: u32 = 17;
pub const PF_ARM_VFP_32_REGISTERS_AVAILABLE: u32 = 18;
pub const PF_ARM_NEON_INSTRUCTIONS_AVAILABLE: u32 = 19;
pub const PF_SECOND_LEVEL_ADDRESS_TRANSLATION: u32 = 20;
pub const PF_VIRT_FIRMWARE_ENABLED: u32 = 21;
pub const PF_RDWRFSGSBASE_AVAILABLE: u32 = 22;
pub const PF_FASTFAIL_AVAILABLE: u32 = 23;
pub const PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE: u32 = 24;
pub const PF_ARM_64BIT_LOADSTORE_ATOMIC: u32 = 25;
pub const PF_ARM_EXTERNAL_CACHE_AVAILABLE: u32 = 26;
pub const PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE: u32 = 27;
pub const PF_RDRAND_INSTRUCTION_AVAILABLE: u32 = 28;
pub const PF_ARM_V8_INSTRUCTIONS_AVAILABLE: u32 = 29;
pub const PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE: u32 = 30;
pub const PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE: u32 = 31;
pub const PF_RDTSCP_INSTRUCTION_AVAILABLE: u32 = 32;
pub const PF_RDPID_INSTRUCTION_AVAILABLE: u32 = 33;
pub const XSTATE_LEGACY_FLOATING_POINT: u32 = 0;
pub const XSTATE_LEGACY_SSE: u32 = 1;
pub const XSTATE_GSSE: u32 = 2;
pub const XSTATE_AVX: u32 = 2;
pub const XSTATE_MASK_LEGACY_FLOATING_POINT: u32 = 1;
pub const XSTATE_MASK_LEGACY_SSE: u32 = 2;
pub const XSTATE_MASK_LEGACY: u32 = 3;
pub const XSTATE_MASK_GSSE: u32 = 4;
pub const XSTATE_MASK_AVX: u32 = 4;
pub const MAXIMUM_XSTATE_FEATURES: u32 = 64;
pub const SECTION_QUERY: u32 = 1;
pub const SECTION_MAP_WRITE: u32 = 2;
pub const SECTION_MAP_READ: u32 = 4;
pub const SECTION_MAP_EXECUTE: u32 = 8;
pub const SECTION_EXTEND_SIZE: u32 = 16;
pub const SECTION_MAP_EXECUTE_EXPLICIT: u32 = 32;
pub const SESSION_QUERY_ACCESS: u32 = 1;
pub const SESSION_MODIFY_ACCESS: u32 = 2;
pub const PAGE_NOACCESS: u32 = 1;
pub const PAGE_READONLY: u32 = 2;
pub const PAGE_READWRITE: u32 = 4;
pub const PAGE_WRITECOPY: u32 = 8;
pub const PAGE_EXECUTE: u32 = 16;
pub const PAGE_EXECUTE_READ: u32 = 32;
pub const PAGE_EXECUTE_READWRITE: u32 = 64;
pub const PAGE_EXECUTE_WRITECOPY: u32 = 128;
pub const PAGE_GUARD: u32 = 256;
pub const PAGE_NOCACHE: u32 = 512;
pub const PAGE_WRITECOMBINE: u32 = 1024;
pub const MEM_COMMIT: u32 = 4096;
pub const MEM_RESERVE: u32 = 8192;
pub const MEM_DECOMMIT: u32 = 16384;
pub const MEM_RELEASE: u32 = 32768;
pub const MEM_FREE: u32 = 65536;
pub const MEM_PRIVATE: u32 = 131072;
pub const MEM_MAPPED: u32 = 262144;
pub const MEM_RESET: u32 = 524288;
pub const MEM_TOP_DOWN: u32 = 1048576;
pub const MEM_WRITE_WATCH: u32 = 2097152;
pub const MEM_PHYSICAL: u32 = 4194304;
pub const MEM_ROTATE: u32 = 8388608;
pub const MEM_LARGE_PAGES: u32 = 536870912;
pub const MEM_4MB_PAGES: u32 = 2147483648;
pub const SEC_FILE: u32 = 8388608;
pub const SEC_IMAGE: u32 = 16777216;
pub const SEC_PROTECTED_IMAGE: u32 = 33554432;
pub const SEC_RESERVE: u32 = 67108864;
pub const SEC_COMMIT: u32 = 134217728;
pub const SEC_NOCACHE: u32 = 268435456;
pub const SEC_WRITECOMBINE: u32 = 1073741824;
pub const SEC_LARGE_PAGES: u32 = 2147483648;
pub const SEC_IMAGE_NO_EXECUTE: u32 = 285212672;
pub const MEM_IMAGE: u32 = 16777216;
pub const WRITE_WATCH_FLAG_RESET: u32 = 1;
pub const MEM_UNMAP_WITH_TRANSIENT_BOOST: u32 = 1;
pub const FILE_READ_DATA: u32 = 1;
pub const FILE_LIST_DIRECTORY: u32 = 1;
pub const FILE_WRITE_DATA: u32 = 2;
pub const FILE_ADD_FILE: u32 = 2;
pub const FILE_APPEND_DATA: u32 = 4;
pub const FILE_ADD_SUBDIRECTORY: u32 = 4;
pub const FILE_CREATE_PIPE_INSTANCE: u32 = 4;
pub const FILE_READ_EA: u32 = 8;
pub const FILE_WRITE_EA: u32 = 16;
pub const FILE_EXECUTE: u32 = 32;
pub const FILE_TRAVERSE: u32 = 32;
pub const FILE_DELETE_CHILD: u32 = 64;
pub const FILE_READ_ATTRIBUTES: u32 = 128;
pub const FILE_WRITE_ATTRIBUTES: u32 = 256;
pub const FILE_SUPERSEDE: u32 = 0;
pub const FILE_OPEN: u32 = 1;
pub const FILE_CREATE: u32 = 2;
pub const FILE_OPEN_IF: u32 = 3;
pub const FILE_OVERWRITE: u32 = 4;
pub const FILE_OVERWRITE_IF: u32 = 5;
pub const FILE_MAXIMUM_DISPOSITION: u32 = 5;
pub const FILE_DIRECTORY_FILE: u32 = 1;
pub const FILE_WRITE_THROUGH: u32 = 2;
pub const FILE_SEQUENTIAL_ONLY: u32 = 4;
pub const FILE_NO_INTERMEDIATE_BUFFERING: u32 = 8;
pub const FILE_SYNCHRONOUS_IO_ALERT: u32 = 16;
pub const FILE_SYNCHRONOUS_IO_NONALERT: u32 = 32;
pub const FILE_NON_DIRECTORY_FILE: u32 = 64;
pub const FILE_CREATE_TREE_CONNECTION: u32 = 128;
pub const FILE_COMPLETE_IF_OPLOCKED: u32 = 256;
pub const FILE_NO_EA_KNOWLEDGE: u32 = 512;
pub const FILE_OPEN_REMOTE_INSTANCE: u32 = 1024;
pub const FILE_RANDOM_ACCESS: u32 = 2048;
pub const FILE_DELETE_ON_CLOSE: u32 = 4096;
pub const FILE_OPEN_BY_FILE_ID: u32 = 8192;
pub const FILE_OPEN_FOR_BACKUP_INTENT: u32 = 16384;
pub const FILE_NO_COMPRESSION: u32 = 32768;
pub const FILE_RESERVE_OPFILTER: u32 = 1048576;
pub const FILE_OPEN_REPARSE_POINT: u32 = 2097152;
pub const FILE_OPEN_NO_RECALL: u32 = 4194304;
pub const FILE_OPEN_FOR_FREE_SPACE_QUERY: u32 = 8388608;
pub const FILE_SHARE_READ: u32 = 1;
pub const FILE_SHARE_WRITE: u32 = 2;
pub const FILE_SHARE_DELETE: u32 = 4;
pub const FILE_SHARE_VALID_FLAGS: u32 = 7;
pub const FILE_ATTRIBUTE_READONLY: u32 = 1;
pub const FILE_ATTRIBUTE_HIDDEN: u32 = 2;
pub const FILE_ATTRIBUTE_SYSTEM: u32 = 4;
pub const FILE_ATTRIBUTE_DIRECTORY: u32 = 16;
pub const FILE_ATTRIBUTE_ARCHIVE: u32 = 32;
pub const FILE_ATTRIBUTE_DEVICE: u32 = 64;
pub const FILE_ATTRIBUTE_NORMAL: u32 = 128;
pub const FILE_ATTRIBUTE_TEMPORARY: u32 = 256;
pub const FILE_ATTRIBUTE_SPARSE_FILE: u32 = 512;
pub const FILE_ATTRIBUTE_REPARSE_POINT: u32 = 1024;
pub const FILE_ATTRIBUTE_COMPRESSED: u32 = 2048;
pub const FILE_ATTRIBUTE_OFFLINE: u32 = 4096;
pub const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: u32 = 8192;
pub const FILE_ATTRIBUTE_ENCRYPTED: u32 = 16384;
pub const FILE_ATTRIBUTE_VIRTUAL: u32 = 65536;
pub const FILE_NOTIFY_CHANGE_FILE_NAME: u32 = 1;
pub const FILE_NOTIFY_CHANGE_DIR_NAME: u32 = 2;
pub const FILE_NOTIFY_CHANGE_ATTRIBUTES: u32 = 4;
pub const FILE_NOTIFY_CHANGE_SIZE: u32 = 8;
pub const FILE_NOTIFY_CHANGE_LAST_WRITE: u32 = 16;
pub const FILE_NOTIFY_CHANGE_LAST_ACCESS: u32 = 32;
pub const FILE_NOTIFY_CHANGE_CREATION: u32 = 64;
pub const FILE_NOTIFY_CHANGE_SECURITY: u32 = 256;
pub const FILE_ACTION_ADDED: u32 = 1;
pub const FILE_ACTION_REMOVED: u32 = 2;
pub const FILE_ACTION_MODIFIED: u32 = 3;
pub const FILE_ACTION_RENAMED_OLD_NAME: u32 = 4;
pub const FILE_ACTION_RENAMED_NEW_NAME: u32 = 5;
pub const FILE_CASE_SENSITIVE_SEARCH: u32 = 1;
pub const FILE_CASE_PRESERVED_NAMES: u32 = 2;
pub const FILE_UNICODE_ON_DISK: u32 = 4;
pub const FILE_PERSISTENT_ACLS: u32 = 8;
pub const FILE_FILE_COMPRESSION: u32 = 16;
pub const FILE_VOLUME_QUOTAS: u32 = 32;
pub const FILE_SUPPORTS_SPARSE_FILES: u32 = 64;
pub const FILE_SUPPORTS_REPARSE_POINTS: u32 = 128;
pub const FILE_SUPPORTS_REMOTE_STORAGE: u32 = 256;
pub const FILE_VOLUME_IS_COMPRESSED: u32 = 32768;
pub const FILE_SUPPORTS_OBJECT_IDS: u32 = 65536;
pub const FILE_SUPPORTS_ENCRYPTION: u32 = 131072;
pub const FILE_NAMED_STREAMS: u32 = 262144;
pub const FILE_READ_ONLY_VOLUME: u32 = 524288;
pub const FILE_SEQUENTIAL_WRITE_ONCE: u32 = 1048576;
pub const FILE_SUPPORTS_TRANSACTIONS: u32 = 2097152;
pub const FILE_SUPPORTS_HARD_LINKS: u32 = 4194304;
pub const FILE_SUPPORTS_EXTENDED_ATTRIBUTES: u32 = 8388608;
pub const FILE_SUPPORTS_OPEN_BY_FILE_ID: u32 = 16777216;
pub const FILE_SUPPORTS_USN_JOURNAL: u32 = 33554432;
pub const FILE_SUPPORTS_INTEGRITY_STREAMS: u32 = 67108864;
pub const MAXIMUM_REPARSE_DATA_BUFFER_SIZE: u32 = 16384;
pub const SYMLINK_FLAG_RELATIVE: u32 = 1;
pub const IO_REPARSE_TAG_RESERVED_ZERO: u32 = 0;
pub const IO_REPARSE_TAG_RESERVED_ONE: u32 = 1;
pub const IO_REPARSE_TAG_RESERVED_RANGE: u32 = 1;
pub const IO_COMPLETION_MODIFY_STATE: u32 = 2;
pub const DUPLICATE_CLOSE_SOURCE: u32 = 1;
pub const DUPLICATE_SAME_ACCESS: u32 = 2;
pub const POWERBUTTON_ACTION_INDEX_NOTHING: u32 = 0;
pub const POWERBUTTON_ACTION_INDEX_SLEEP: u32 = 1;
pub const POWERBUTTON_ACTION_INDEX_HIBERNATE: u32 = 2;
pub const POWERBUTTON_ACTION_INDEX_SHUTDOWN: u32 = 3;
pub const POWERBUTTON_ACTION_VALUE_NOTHING: u32 = 0;
pub const POWERBUTTON_ACTION_VALUE_SLEEP: u32 = 2;
pub const POWERBUTTON_ACTION_VALUE_HIBERNATE: u32 = 3;
pub const POWERBUTTON_ACTION_VALUE_SHUTDOWN: u32 = 6;
pub const PERFSTATE_POLICY_CHANGE_IDEAL: u32 = 0;
pub const PERFSTATE_POLICY_CHANGE_SINGLE: u32 = 1;
pub const PERFSTATE_POLICY_CHANGE_ROCKET: u32 = 2;
pub const PERFSTATE_POLICY_CHANGE_MAX: u32 = 2;
pub const PROCESSOR_PERF_BOOST_POLICY_DISABLED: u32 = 0;
pub const PROCESSOR_PERF_BOOST_POLICY_MAX: u32 = 100;
pub const PROCESSOR_PERF_BOOST_MODE_DISABLED: u32 = 0;
pub const PROCESSOR_PERF_BOOST_MODE_ENABLED: u32 = 1;
pub const PROCESSOR_PERF_BOOST_MODE_AGGRESSIVE: u32 = 2;
pub const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_ENABLED: u32 = 3;
pub const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE: u32 = 4;
pub const PROCESSOR_PERF_BOOST_MODE_MAX: u32 = 4;
pub const CORE_PARKING_POLICY_CHANGE_IDEAL: u32 = 0;
pub const CORE_PARKING_POLICY_CHANGE_SINGLE: u32 = 1;
pub const CORE_PARKING_POLICY_CHANGE_ROCKET: u32 = 2;
pub const CORE_PARKING_POLICY_CHANGE_MULTISTEP: u32 = 3;
pub const CORE_PARKING_POLICY_CHANGE_MAX: u32 = 3;
pub const POWER_DEVICE_IDLE_POLICY_PERFORMANCE: u32 = 0;
pub const POWER_DEVICE_IDLE_POLICY_CONSERVATIVE: u32 = 1;
pub const POWER_SYSTEM_MAXIMUM: u32 = 7;
pub const DIAGNOSTIC_REASON_VERSION: u32 = 0;
pub const POWER_REQUEST_CONTEXT_VERSION: u32 = 0;
pub const DIAGNOSTIC_REASON_SIMPLE_STRING: u32 = 1;
pub const DIAGNOSTIC_REASON_DETAILED_STRING: u32 = 2;
pub const DIAGNOSTIC_REASON_NOT_SPECIFIED: u32 = 2147483648;
pub const DIAGNOSTIC_REASON_INVALID_FLAGS: i64 = -2147483652;
pub const POWER_REQUEST_CONTEXT_SIMPLE_STRING: u32 = 1;
pub const POWER_REQUEST_CONTEXT_DETAILED_STRING: u32 = 2;
pub const PDCAP_D0_SUPPORTED: u32 = 1;
pub const PDCAP_D1_SUPPORTED: u32 = 2;
pub const PDCAP_D2_SUPPORTED: u32 = 4;
pub const PDCAP_D3_SUPPORTED: u32 = 8;
pub const PDCAP_WAKE_FROM_D0_SUPPORTED: u32 = 16;
pub const PDCAP_WAKE_FROM_D1_SUPPORTED: u32 = 32;
pub const PDCAP_WAKE_FROM_D2_SUPPORTED: u32 = 64;
pub const PDCAP_WAKE_FROM_D3_SUPPORTED: u32 = 128;
pub const PDCAP_WARM_EJECT_SUPPORTED: u32 = 256;
pub const POWER_SETTING_VALUE_VERSION: u32 = 1;
pub const POWER_PLATFORM_ROLE_V1: u32 = 1;
pub const POWER_PLATFORM_ROLE_V2: u32 = 2;
pub const POWER_PLATFORM_ROLE_VERSION: u32 = 1;
pub const PROC_IDLE_BUCKET_COUNT: u32 = 6;
pub const PROC_IDLE_BUCKET_COUNT_EX: u32 = 16;
pub const ACPI_PPM_SOFTWARE_ALL: u32 = 252;
pub const ACPI_PPM_SOFTWARE_ANY: u32 = 253;
pub const ACPI_PPM_HARDWARE_ALL: u32 = 254;
pub const MS_PPM_SOFTWARE_ALL: u32 = 1;
pub const PPM_FIRMWARE_ACPI1C2: u32 = 1;
pub const PPM_FIRMWARE_ACPI1C3: u32 = 2;
pub const PPM_FIRMWARE_ACPI1TSTATES: u32 = 4;
pub const PPM_FIRMWARE_CST: u32 = 8;
pub const PPM_FIRMWARE_CSD: u32 = 16;
pub const PPM_FIRMWARE_PCT: u32 = 32;
pub const PPM_FIRMWARE_PSS: u32 = 64;
pub const PPM_FIRMWARE_XPSS: u32 = 128;
pub const PPM_FIRMWARE_PPC: u32 = 256;
pub const PPM_FIRMWARE_PSD: u32 = 512;
pub const PPM_FIRMWARE_PTC: u32 = 1024;
pub const PPM_FIRMWARE_TSS: u32 = 2048;
pub const PPM_FIRMWARE_TPC: u32 = 4096;
pub const PPM_FIRMWARE_TSD: u32 = 8192;
pub const PPM_FIRMWARE_PCCH: u32 = 16384;
pub const PPM_FIRMWARE_PCCP: u32 = 32768;
pub const PPM_FIRMWARE_OSC: u32 = 65536;
pub const PPM_FIRMWARE_PDC: u32 = 131072;
pub const PPM_FIRMWARE_CPC: u32 = 262144;
pub const PPM_PERFORMANCE_IMPLEMENTATION_NONE: u32 = 0;
pub const PPM_PERFORMANCE_IMPLEMENTATION_PSTATES: u32 = 1;
pub const PPM_PERFORMANCE_IMPLEMENTATION_PCCV1: u32 = 2;
pub const PPM_PERFORMANCE_IMPLEMENTATION_CPPC: u32 = 3;
pub const PPM_PERFORMANCE_IMPLEMENTATION_PEP: u32 = 4;
pub const PPM_IDLE_IMPLEMENTATION_NONE: u32 = 0;
pub const PPM_IDLE_IMPLEMENTATION_CSTATES: u32 = 1;
pub const PPM_IDLE_IMPLEMENTATION_PEP: u32 = 2;
pub const POWER_ACTION_QUERY_ALLOWED: u32 = 1;
pub const POWER_ACTION_UI_ALLOWED: u32 = 2;
pub const POWER_ACTION_OVERRIDE_APPS: u32 = 4;
pub const POWER_ACTION_HIBERBOOT: u32 = 8;
pub const POWER_ACTION_PSEUDO_TRANSITION: u32 = 134217728;
pub const POWER_ACTION_LIGHTEST_FIRST: u32 = 268435456;
pub const POWER_ACTION_LOCK_CONSOLE: u32 = 536870912;
pub const POWER_ACTION_DISABLE_WAKES: u32 = 1073741824;
pub const POWER_ACTION_CRITICAL: u32 = 2147483648;
pub const POWER_LEVEL_USER_NOTIFY_TEXT: u32 = 1;
pub const POWER_LEVEL_USER_NOTIFY_SOUND: u32 = 2;
pub const POWER_LEVEL_USER_NOTIFY_EXEC: u32 = 4;
pub const POWER_USER_NOTIFY_BUTTON: u32 = 8;
pub const POWER_USER_NOTIFY_SHUTDOWN: u32 = 16;
pub const POWER_USER_NOTIFY_FORCED_SHUTDOWN: u32 = 32;
pub const POWER_FORCE_TRIGGER_RESET: u32 = 2147483648;
pub const BATTERY_DISCHARGE_FLAGS_EVENTCODE_MASK: u32 = 7;
pub const BATTERY_DISCHARGE_FLAGS_ENABLE: u32 = 2147483648;
pub const DISCHARGE_POLICY_CRITICAL: u32 = 0;
pub const DISCHARGE_POLICY_LOW: u32 = 1;
pub const NUM_DISCHARGE_POLICIES: u32 = 4;
pub const PROCESSOR_IDLESTATE_POLICY_COUNT: u32 = 3;
pub const PO_THROTTLE_NONE: u32 = 0;
pub const PO_THROTTLE_CONSTANT: u32 = 1;
pub const PO_THROTTLE_DEGRADE: u32 = 2;
pub const PO_THROTTLE_ADAPTIVE: u32 = 3;
pub const PO_THROTTLE_MAXIMUM: u32 = 4;
pub const IMAGE_DOS_SIGNATURE: u32 = 23117;
pub const IMAGE_OS2_SIGNATURE: u32 = 17742;
pub const IMAGE_OS2_SIGNATURE_LE: u32 = 17740;
pub const IMAGE_VXD_SIGNATURE: u32 = 17740;
pub const IMAGE_NT_SIGNATURE: u32 = 17744;
pub const IMAGE_SIZEOF_FILE_HEADER: u32 = 20;
pub const IMAGE_FILE_RELOCS_STRIPPED: u32 = 1;
pub const IMAGE_FILE_EXECUTABLE_IMAGE: u32 = 2;
pub const IMAGE_FILE_LINE_NUMS_STRIPPED: u32 = 4;
pub const IMAGE_FILE_LOCAL_SYMS_STRIPPED: u32 = 8;
pub const IMAGE_FILE_AGGRESIVE_WS_TRIM: u32 = 16;
pub const IMAGE_FILE_LARGE_ADDRESS_AWARE: u32 = 32;
pub const IMAGE_FILE_BYTES_REVERSED_LO: u32 = 128;
pub const IMAGE_FILE_32BIT_MACHINE: u32 = 256;
pub const IMAGE_FILE_DEBUG_STRIPPED: u32 = 512;
pub const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP: u32 = 1024;
pub const IMAGE_FILE_NET_RUN_FROM_SWAP: u32 = 2048;
pub const IMAGE_FILE_SYSTEM: u32 = 4096;
pub const IMAGE_FILE_DLL: u32 = 8192;
pub const IMAGE_FILE_UP_SYSTEM_ONLY: u32 = 16384;
pub const IMAGE_FILE_BYTES_REVERSED_HI: u32 = 32768;
pub const IMAGE_FILE_MACHINE_UNKNOWN: u32 = 0;
pub const IMAGE_FILE_MACHINE_I386: u32 = 332;
pub const IMAGE_FILE_MACHINE_R3000: u32 = 354;
pub const IMAGE_FILE_MACHINE_R4000: u32 = 358;
pub const IMAGE_FILE_MACHINE_R10000: u32 = 360;
pub const IMAGE_FILE_MACHINE_WCEMIPSV2: u32 = 361;
pub const IMAGE_FILE_MACHINE_ALPHA: u32 = 388;
pub const IMAGE_FILE_MACHINE_SH3: u32 = 418;
pub const IMAGE_FILE_MACHINE_SH3DSP: u32 = 419;
pub const IMAGE_FILE_MACHINE_SH3E: u32 = 420;
pub const IMAGE_FILE_MACHINE_SH4: u32 = 422;
pub const IMAGE_FILE_MACHINE_SH5: u32 = 424;
pub const IMAGE_FILE_MACHINE_ARM: u32 = 448;
pub const IMAGE_FILE_MACHINE_ARMV7: u32 = 452;
pub const IMAGE_FILE_MACHINE_ARMNT: u32 = 452;
pub const IMAGE_FILE_MACHINE_ARM64: u32 = 43620;
pub const IMAGE_FILE_MACHINE_THUMB: u32 = 450;
pub const IMAGE_FILE_MACHINE_AM33: u32 = 467;
pub const IMAGE_FILE_MACHINE_POWERPC: u32 = 496;
pub const IMAGE_FILE_MACHINE_POWERPCFP: u32 = 497;
pub const IMAGE_FILE_MACHINE_IA64: u32 = 512;
pub const IMAGE_FILE_MACHINE_MIPS16: u32 = 614;
pub const IMAGE_FILE_MACHINE_ALPHA64: u32 = 644;
pub const IMAGE_FILE_MACHINE_MIPSFPU: u32 = 870;
pub const IMAGE_FILE_MACHINE_MIPSFPU16: u32 = 1126;
pub const IMAGE_FILE_MACHINE_AXP64: u32 = 644;
pub const IMAGE_FILE_MACHINE_TRICORE: u32 = 1312;
pub const IMAGE_FILE_MACHINE_CEF: u32 = 3311;
pub const IMAGE_FILE_MACHINE_EBC: u32 = 3772;
pub const IMAGE_FILE_MACHINE_AMD64: u32 = 34404;
pub const IMAGE_FILE_MACHINE_M32R: u32 = 36929;
pub const IMAGE_FILE_MACHINE_CEE: u32 = 49390;
pub const IMAGE_NUMBEROF_DIRECTORY_ENTRIES: u32 = 16;
pub const IMAGE_SIZEOF_ROM_OPTIONAL_HEADER: u32 = 56;
pub const IMAGE_SIZEOF_STD_OPTIONAL_HEADER: u32 = 28;
pub const IMAGE_SIZEOF_NT_OPTIONAL32_HEADER: u32 = 224;
pub const IMAGE_SIZEOF_NT_OPTIONAL64_HEADER: u32 = 240;
pub const IMAGE_NT_OPTIONAL_HDR32_MAGIC: u32 = 267;
pub const IMAGE_NT_OPTIONAL_HDR64_MAGIC: u32 = 523;
pub const IMAGE_ROM_OPTIONAL_HDR_MAGIC: u32 = 263;
pub const IMAGE_SIZEOF_NT_OPTIONAL_HEADER: u32 = 240;
pub const IMAGE_NT_OPTIONAL_HDR_MAGIC: u32 = 523;
pub const IMAGE_SUBSYSTEM_UNKNOWN: u32 = 0;
pub const IMAGE_SUBSYSTEM_NATIVE: u32 = 1;
pub const IMAGE_SUBSYSTEM_WINDOWS_GUI: u32 = 2;
pub const IMAGE_SUBSYSTEM_WINDOWS_CUI: u32 = 3;
pub const IMAGE_SUBSYSTEM_OS2_CUI: u32 = 5;
pub const IMAGE_SUBSYSTEM_POSIX_CUI: u32 = 7;
pub const IMAGE_SUBSYSTEM_NATIVE_WINDOWS: u32 = 8;
pub const IMAGE_SUBSYSTEM_WINDOWS_CE_GUI: u32 = 9;
pub const IMAGE_SUBSYSTEM_EFI_APPLICATION: u32 = 10;
pub const IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER: u32 = 11;
pub const IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER: u32 = 12;
pub const IMAGE_SUBSYSTEM_EFI_ROM: u32 = 13;
pub const IMAGE_SUBSYSTEM_XBOX: u32 = 14;
pub const IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION: u32 = 16;
pub const IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA: u32 = 32;
pub const IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE: u32 = 64;
pub const IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY: u32 = 128;
pub const IMAGE_DLLCHARACTERISTICS_NX_COMPAT: u32 = 256;
pub const IMAGE_DLLCHARACTERISTICS_NO_ISOLATION: u32 = 512;
pub const IMAGE_DLLCHARACTERISTICS_NO_SEH: u32 = 1024;
pub const IMAGE_DLLCHARACTERISTICS_NO_BIND: u32 = 2048;
pub const IMAGE_DLLCHARACTERISTICS_APPCONTAINER: u32 = 4096;
pub const IMAGE_DLLCHARACTERISTICS_WDM_DRIVER: u32 = 8192;
pub const IMAGE_DLLCHARACTERISTICS_GUARD_CF: u32 = 16384;
pub const IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE: u32 = 32768;
pub const IMAGE_DIRECTORY_ENTRY_EXPORT: u32 = 0;
pub const IMAGE_DIRECTORY_ENTRY_IMPORT: u32 = 1;
pub const IMAGE_DIRECTORY_ENTRY_RESOURCE: u32 = 2;
pub const IMAGE_DIRECTORY_ENTRY_EXCEPTION: u32 = 3;
pub const IMAGE_DIRECTORY_ENTRY_SECURITY: u32 = 4;
pub const IMAGE_DIRECTORY_ENTRY_BASERELOC: u32 = 5;
pub const IMAGE_DIRECTORY_ENTRY_DEBUG: u32 = 6;
pub const IMAGE_DIRECTORY_ENTRY_ARCHITECTURE: u32 = 7;
pub const IMAGE_DIRECTORY_ENTRY_GLOBALPTR: u32 = 8;
pub const IMAGE_DIRECTORY_ENTRY_TLS: u32 = 9;
pub const IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG: u32 = 10;
pub const IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT: u32 = 11;
pub const IMAGE_DIRECTORY_ENTRY_IAT: u32 = 12;
pub const IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT: u32 = 13;
pub const IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR: u32 = 14;
pub const IMAGE_SIZEOF_SHORT_NAME: u32 = 8;
pub const IMAGE_SIZEOF_SECTION_HEADER: u32 = 40;
pub const IMAGE_SCN_TYPE_NO_PAD: u32 = 8;
pub const IMAGE_SCN_CNT_CODE: u32 = 32;
pub const IMAGE_SCN_CNT_INITIALIZED_DATA: u32 = 64;
pub const IMAGE_SCN_CNT_UNINITIALIZED_DATA: u32 = 128;
pub const IMAGE_SCN_LNK_OTHER: u32 = 256;
pub const IMAGE_SCN_LNK_INFO: u32 = 512;
pub const IMAGE_SCN_LNK_REMOVE: u32 = 2048;
pub const IMAGE_SCN_LNK_COMDAT: u32 = 4096;
pub const IMAGE_SCN_NO_DEFER_SPEC_EXC: u32 = 16384;
pub const IMAGE_SCN_GPREL: u32 = 32768;
pub const IMAGE_SCN_MEM_FARDATA: u32 = 32768;
pub const IMAGE_SCN_MEM_PURGEABLE: u32 = 131072;
pub const IMAGE_SCN_MEM_16BIT: u32 = 131072;
pub const IMAGE_SCN_MEM_LOCKED: u32 = 262144;
pub const IMAGE_SCN_MEM_PRELOAD: u32 = 524288;
pub const IMAGE_SCN_ALIGN_1BYTES: u32 = 1048576;
pub const IMAGE_SCN_ALIGN_2BYTES: u32 = 2097152;
pub const IMAGE_SCN_ALIGN_4BYTES: u32 = 3145728;
pub const IMAGE_SCN_ALIGN_8BYTES: u32 = 4194304;
pub const IMAGE_SCN_ALIGN_16BYTES: u32 = 5242880;
pub const IMAGE_SCN_ALIGN_32BYTES: u32 = 6291456;
pub const IMAGE_SCN_ALIGN_64BYTES: u32 = 7340032;
pub const IMAGE_SCN_ALIGN_128BYTES: u32 = 8388608;
pub const IMAGE_SCN_ALIGN_256BYTES: u32 = 9437184;
pub const IMAGE_SCN_ALIGN_512BYTES: u32 = 10485760;
pub const IMAGE_SCN_ALIGN_1024BYTES: u32 = 11534336;
pub const IMAGE_SCN_ALIGN_2048BYTES: u32 = 12582912;
pub const IMAGE_SCN_ALIGN_4096BYTES: u32 = 13631488;
pub const IMAGE_SCN_ALIGN_8192BYTES: u32 = 14680064;
pub const IMAGE_SCN_ALIGN_MASK: u32 = 15728640;
pub const IMAGE_SCN_LNK_NRELOC_OVFL: u32 = 16777216;
pub const IMAGE_SCN_MEM_DISCARDABLE: u32 = 33554432;
pub const IMAGE_SCN_MEM_NOT_CACHED: u32 = 67108864;
pub const IMAGE_SCN_MEM_NOT_PAGED: u32 = 134217728;
pub const IMAGE_SCN_MEM_SHARED: u32 = 268435456;
pub const IMAGE_SCN_MEM_EXECUTE: u32 = 536870912;
pub const IMAGE_SCN_MEM_READ: u32 = 1073741824;
pub const IMAGE_SCN_MEM_WRITE: u32 = 2147483648;
pub const IMAGE_SCN_SCALE_INDEX: u32 = 1;
pub const IMAGE_SIZEOF_SYMBOL: u32 = 18;
pub const IMAGE_SYM_SECTION_MAX: u32 = 65279;
pub const IMAGE_SYM_SECTION_MAX_EX: u32 = 2147483647;
pub const IMAGE_SYM_TYPE_NULL: u32 = 0;
pub const IMAGE_SYM_TYPE_VOID: u32 = 1;
pub const IMAGE_SYM_TYPE_CHAR: u32 = 2;
pub const IMAGE_SYM_TYPE_SHORT: u32 = 3;
pub const IMAGE_SYM_TYPE_INT: u32 = 4;
pub const IMAGE_SYM_TYPE_LONG: u32 = 5;
pub const IMAGE_SYM_TYPE_FLOAT: u32 = 6;
pub const IMAGE_SYM_TYPE_DOUBLE: u32 = 7;
pub const IMAGE_SYM_TYPE_STRUCT: u32 = 8;
pub const IMAGE_SYM_TYPE_UNION: u32 = 9;
pub const IMAGE_SYM_TYPE_ENUM: u32 = 10;
pub const IMAGE_SYM_TYPE_MOE: u32 = 11;
pub const IMAGE_SYM_TYPE_BYTE: u32 = 12;
pub const IMAGE_SYM_TYPE_WORD: u32 = 13;
pub const IMAGE_SYM_TYPE_UINT: u32 = 14;
pub const IMAGE_SYM_TYPE_DWORD: u32 = 15;
pub const IMAGE_SYM_TYPE_PCODE: u32 = 32768;
pub const IMAGE_SYM_DTYPE_NULL: u32 = 0;
pub const IMAGE_SYM_DTYPE_POINTER: u32 = 1;
pub const IMAGE_SYM_DTYPE_FUNCTION: u32 = 2;
pub const IMAGE_SYM_DTYPE_ARRAY: u32 = 3;
pub const IMAGE_SYM_CLASS_NULL: u32 = 0;
pub const IMAGE_SYM_CLASS_AUTOMATIC: u32 = 1;
pub const IMAGE_SYM_CLASS_EXTERNAL: u32 = 2;
pub const IMAGE_SYM_CLASS_STATIC: u32 = 3;
pub const IMAGE_SYM_CLASS_REGISTER: u32 = 4;
pub const IMAGE_SYM_CLASS_EXTERNAL_DEF: u32 = 5;
pub const IMAGE_SYM_CLASS_LABEL: u32 = 6;
pub const IMAGE_SYM_CLASS_UNDEFINED_LABEL: u32 = 7;
pub const IMAGE_SYM_CLASS_MEMBER_OF_STRUCT: u32 = 8;
pub const IMAGE_SYM_CLASS_ARGUMENT: u32 = 9;
pub const IMAGE_SYM_CLASS_STRUCT_TAG: u32 = 10;
pub const IMAGE_SYM_CLASS_MEMBER_OF_UNION: u32 = 11;
pub const IMAGE_SYM_CLASS_UNION_TAG: u32 = 12;
pub const IMAGE_SYM_CLASS_TYPE_DEFINITION: u32 = 13;
pub const IMAGE_SYM_CLASS_UNDEFINED_STATIC: u32 = 14;
pub const IMAGE_SYM_CLASS_ENUM_TAG: u32 = 15;
pub const IMAGE_SYM_CLASS_MEMBER_OF_ENUM: u32 = 16;
pub const IMAGE_SYM_CLASS_REGISTER_PARAM: u32 = 17;
pub const IMAGE_SYM_CLASS_BIT_FIELD: u32 = 18;
pub const IMAGE_SYM_CLASS_FAR_EXTERNAL: u32 = 68;
pub const IMAGE_SYM_CLASS_BLOCK: u32 = 100;
pub const IMAGE_SYM_CLASS_FUNCTION: u32 = 101;
pub const IMAGE_SYM_CLASS_END_OF_STRUCT: u32 = 102;
pub const IMAGE_SYM_CLASS_FILE: u32 = 103;
pub const IMAGE_SYM_CLASS_SECTION: u32 = 104;
pub const IMAGE_SYM_CLASS_WEAK_EXTERNAL: u32 = 105;
pub const IMAGE_SYM_CLASS_CLR_TOKEN: u32 = 107;
pub const N_BTMASK: u32 = 15;
pub const N_TMASK: u32 = 48;
pub const N_TMASK1: u32 = 192;
pub const N_TMASK2: u32 = 240;
pub const N_BTSHFT: u32 = 4;
pub const N_TSHIFT: u32 = 2;
pub const IMAGE_SIZEOF_AUX_SYMBOL: u32 = 18;
pub const IMAGE_COMDAT_SELECT_NODUPLICATES: u32 = 1;
pub const IMAGE_COMDAT_SELECT_ANY: u32 = 2;
pub const IMAGE_COMDAT_SELECT_SAME_SIZE: u32 = 3;
pub const IMAGE_COMDAT_SELECT_EXACT_MATCH: u32 = 4;
pub const IMAGE_COMDAT_SELECT_ASSOCIATIVE: u32 = 5;
pub const IMAGE_COMDAT_SELECT_LARGEST: u32 = 6;
pub const IMAGE_COMDAT_SELECT_NEWEST: u32 = 7;
pub const IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY: u32 = 1;
pub const IMAGE_WEAK_EXTERN_SEARCH_LIBRARY: u32 = 2;
pub const IMAGE_WEAK_EXTERN_SEARCH_ALIAS: u32 = 3;
pub const IMAGE_SIZEOF_RELOCATION: u32 = 10;
pub const IMAGE_REL_I386_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_I386_DIR16: u32 = 1;
pub const IMAGE_REL_I386_REL16: u32 = 2;
pub const IMAGE_REL_I386_DIR32: u32 = 6;
pub const IMAGE_REL_I386_DIR32NB: u32 = 7;
pub const IMAGE_REL_I386_SEG12: u32 = 9;
pub const IMAGE_REL_I386_SECTION: u32 = 10;
pub const IMAGE_REL_I386_SECREL: u32 = 11;
pub const IMAGE_REL_I386_TOKEN: u32 = 12;
pub const IMAGE_REL_I386_SECREL7: u32 = 13;
pub const IMAGE_REL_I386_REL32: u32 = 20;
pub const IMAGE_REL_MIPS_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_MIPS_REFHALF: u32 = 1;
pub const IMAGE_REL_MIPS_REFWORD: u32 = 2;
pub const IMAGE_REL_MIPS_JMPADDR: u32 = 3;
pub const IMAGE_REL_MIPS_REFHI: u32 = 4;
pub const IMAGE_REL_MIPS_REFLO: u32 = 5;
pub const IMAGE_REL_MIPS_GPREL: u32 = 6;
pub const IMAGE_REL_MIPS_LITERAL: u32 = 7;
pub const IMAGE_REL_MIPS_SECTION: u32 = 10;
pub const IMAGE_REL_MIPS_SECREL: u32 = 11;
pub const IMAGE_REL_MIPS_SECRELLO: u32 = 12;
pub const IMAGE_REL_MIPS_SECRELHI: u32 = 13;
pub const IMAGE_REL_MIPS_TOKEN: u32 = 14;
pub const IMAGE_REL_MIPS_JMPADDR16: u32 = 16;
pub const IMAGE_REL_MIPS_REFWORDNB: u32 = 34;
pub const IMAGE_REL_MIPS_PAIR: u32 = 37;
pub const IMAGE_REL_ALPHA_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_ALPHA_REFLONG: u32 = 1;
pub const IMAGE_REL_ALPHA_REFQUAD: u32 = 2;
pub const IMAGE_REL_ALPHA_GPREL32: u32 = 3;
pub const IMAGE_REL_ALPHA_LITERAL: u32 = 4;
pub const IMAGE_REL_ALPHA_LITUSE: u32 = 5;
pub const IMAGE_REL_ALPHA_GPDISP: u32 = 6;
pub const IMAGE_REL_ALPHA_BRADDR: u32 = 7;
pub const IMAGE_REL_ALPHA_HINT: u32 = 8;
pub const IMAGE_REL_ALPHA_INLINE_REFLONG: u32 = 9;
pub const IMAGE_REL_ALPHA_REFHI: u32 = 10;
pub const IMAGE_REL_ALPHA_REFLO: u32 = 11;
pub const IMAGE_REL_ALPHA_PAIR: u32 = 12;
pub const IMAGE_REL_ALPHA_MATCH: u32 = 13;
pub const IMAGE_REL_ALPHA_SECTION: u32 = 14;
pub const IMAGE_REL_ALPHA_SECREL: u32 = 15;
pub const IMAGE_REL_ALPHA_REFLONGNB: u32 = 16;
pub const IMAGE_REL_ALPHA_SECRELLO: u32 = 17;
pub const IMAGE_REL_ALPHA_SECRELHI: u32 = 18;
pub const IMAGE_REL_ALPHA_REFQ3: u32 = 19;
pub const IMAGE_REL_ALPHA_REFQ2: u32 = 20;
pub const IMAGE_REL_ALPHA_REFQ1: u32 = 21;
pub const IMAGE_REL_ALPHA_GPRELLO: u32 = 22;
pub const IMAGE_REL_ALPHA_GPRELHI: u32 = 23;
pub const IMAGE_REL_PPC_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_PPC_ADDR64: u32 = 1;
pub const IMAGE_REL_PPC_ADDR32: u32 = 2;
pub const IMAGE_REL_PPC_ADDR24: u32 = 3;
pub const IMAGE_REL_PPC_ADDR16: u32 = 4;
pub const IMAGE_REL_PPC_ADDR14: u32 = 5;
pub const IMAGE_REL_PPC_REL24: u32 = 6;
pub const IMAGE_REL_PPC_REL14: u32 = 7;
pub const IMAGE_REL_PPC_TOCREL16: u32 = 8;
pub const IMAGE_REL_PPC_TOCREL14: u32 = 9;
pub const IMAGE_REL_PPC_ADDR32NB: u32 = 10;
pub const IMAGE_REL_PPC_SECREL: u32 = 11;
pub const IMAGE_REL_PPC_SECTION: u32 = 12;
pub const IMAGE_REL_PPC_IFGLUE: u32 = 13;
pub const IMAGE_REL_PPC_IMGLUE: u32 = 14;
pub const IMAGE_REL_PPC_SECREL16: u32 = 15;
pub const IMAGE_REL_PPC_REFHI: u32 = 16;
pub const IMAGE_REL_PPC_REFLO: u32 = 17;
pub const IMAGE_REL_PPC_PAIR: u32 = 18;
pub const IMAGE_REL_PPC_SECRELLO: u32 = 19;
pub const IMAGE_REL_PPC_SECRELHI: u32 = 20;
pub const IMAGE_REL_PPC_GPREL: u32 = 21;
pub const IMAGE_REL_PPC_TOKEN: u32 = 22;
pub const IMAGE_REL_PPC_TYPEMASK: u32 = 255;
pub const IMAGE_REL_PPC_NEG: u32 = 256;
pub const IMAGE_REL_PPC_BRTAKEN: u32 = 512;
pub const IMAGE_REL_PPC_BRNTAKEN: u32 = 1024;
pub const IMAGE_REL_PPC_TOCDEFN: u32 = 2048;
pub const IMAGE_REL_SH3_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_SH3_DIRECT16: u32 = 1;
pub const IMAGE_REL_SH3_DIRECT32: u32 = 2;
pub const IMAGE_REL_SH3_DIRECT8: u32 = 3;
pub const IMAGE_REL_SH3_DIRECT8_WORD: u32 = 4;
pub const IMAGE_REL_SH3_DIRECT8_LONG: u32 = 5;
pub const IMAGE_REL_SH3_DIRECT4: u32 = 6;
pub const IMAGE_REL_SH3_DIRECT4_WORD: u32 = 7;
pub const IMAGE_REL_SH3_DIRECT4_LONG: u32 = 8;
pub const IMAGE_REL_SH3_PCREL8_WORD: u32 = 9;
pub const IMAGE_REL_SH3_PCREL8_LONG: u32 = 10;
pub const IMAGE_REL_SH3_PCREL12_WORD: u32 = 11;
pub const IMAGE_REL_SH3_STARTOF_SECTION: u32 = 12;
pub const IMAGE_REL_SH3_SIZEOF_SECTION: u32 = 13;
pub const IMAGE_REL_SH3_SECTION: u32 = 14;
pub const IMAGE_REL_SH3_SECREL: u32 = 15;
pub const IMAGE_REL_SH3_DIRECT32_NB: u32 = 16;
pub const IMAGE_REL_SH3_GPREL4_LONG: u32 = 17;
pub const IMAGE_REL_SH3_TOKEN: u32 = 18;
pub const IMAGE_REL_SHM_PCRELPT: u32 = 19;
pub const IMAGE_REL_SHM_REFLO: u32 = 20;
pub const IMAGE_REL_SHM_REFHALF: u32 = 21;
pub const IMAGE_REL_SHM_RELLO: u32 = 22;
pub const IMAGE_REL_SHM_RELHALF: u32 = 23;
pub const IMAGE_REL_SHM_PAIR: u32 = 24;
pub const IMAGE_REL_SH_NOMODE: u32 = 32768;
pub const IMAGE_REL_ARM_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_ARM_ADDR32: u32 = 1;
pub const IMAGE_REL_ARM_ADDR32NB: u32 = 2;
pub const IMAGE_REL_ARM_BRANCH24: u32 = 3;
pub const IMAGE_REL_ARM_BRANCH11: u32 = 4;
pub const IMAGE_REL_ARM_TOKEN: u32 = 5;
pub const IMAGE_REL_ARM_GPREL12: u32 = 6;
pub const IMAGE_REL_ARM_GPREL7: u32 = 7;
pub const IMAGE_REL_ARM_BLX24: u32 = 8;
pub const IMAGE_REL_ARM_BLX11: u32 = 9;
pub const IMAGE_REL_ARM_SECTION: u32 = 14;
pub const IMAGE_REL_ARM_SECREL: u32 = 15;
pub const IMAGE_REL_ARM_MOV32A: u32 = 16;
pub const IMAGE_REL_ARM_MOV32: u32 = 16;
pub const IMAGE_REL_ARM_MOV32T: u32 = 17;
pub const IMAGE_REL_THUMB_MOV32: u32 = 17;
pub const IMAGE_REL_ARM_BRANCH20T: u32 = 18;
pub const IMAGE_REL_THUMB_BRANCH20: u32 = 18;
pub const IMAGE_REL_ARM_BRANCH24T: u32 = 20;
pub const IMAGE_REL_THUMB_BRANCH24: u32 = 20;
pub const IMAGE_REL_ARM_BLX23T: u32 = 21;
pub const IMAGE_REL_THUMB_BLX23: u32 = 21;
pub const IMAGE_REL_AM_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_AM_ADDR32: u32 = 1;
pub const IMAGE_REL_AM_ADDR32NB: u32 = 2;
pub const IMAGE_REL_AM_CALL32: u32 = 3;
pub const IMAGE_REL_AM_FUNCINFO: u32 = 4;
pub const IMAGE_REL_AM_REL32_1: u32 = 5;
pub const IMAGE_REL_AM_REL32_2: u32 = 6;
pub const IMAGE_REL_AM_SECREL: u32 = 7;
pub const IMAGE_REL_AM_SECTION: u32 = 8;
pub const IMAGE_REL_AM_TOKEN: u32 = 9;
pub const IMAGE_REL_AMD64_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_AMD64_ADDR64: u32 = 1;
pub const IMAGE_REL_AMD64_ADDR32: u32 = 2;
pub const IMAGE_REL_AMD64_ADDR32NB: u32 = 3;
pub const IMAGE_REL_AMD64_REL32: u32 = 4;
pub const IMAGE_REL_AMD64_REL32_1: u32 = 5;
pub const IMAGE_REL_AMD64_REL32_2: u32 = 6;
pub const IMAGE_REL_AMD64_REL32_3: u32 = 7;
pub const IMAGE_REL_AMD64_REL32_4: u32 = 8;
pub const IMAGE_REL_AMD64_REL32_5: u32 = 9;
pub const IMAGE_REL_AMD64_SECTION: u32 = 10;
pub const IMAGE_REL_AMD64_SECREL: u32 = 11;
pub const IMAGE_REL_AMD64_SECREL7: u32 = 12;
pub const IMAGE_REL_AMD64_TOKEN: u32 = 13;
pub const IMAGE_REL_AMD64_SREL32: u32 = 14;
pub const IMAGE_REL_AMD64_PAIR: u32 = 15;
pub const IMAGE_REL_AMD64_SSPAN32: u32 = 16;
pub const IMAGE_REL_IA64_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_IA64_IMM14: u32 = 1;
pub const IMAGE_REL_IA64_IMM22: u32 = 2;
pub const IMAGE_REL_IA64_IMM64: u32 = 3;
pub const IMAGE_REL_IA64_DIR32: u32 = 4;
pub const IMAGE_REL_IA64_DIR64: u32 = 5;
pub const IMAGE_REL_IA64_PCREL21B: u32 = 6;
pub const IMAGE_REL_IA64_PCREL21M: u32 = 7;
pub const IMAGE_REL_IA64_PCREL21F: u32 = 8;
pub const IMAGE_REL_IA64_GPREL22: u32 = 9;
pub const IMAGE_REL_IA64_LTOFF22: u32 = 10;
pub const IMAGE_REL_IA64_SECTION: u32 = 11;
pub const IMAGE_REL_IA64_SECREL22: u32 = 12;
pub const IMAGE_REL_IA64_SECREL64I: u32 = 13;
pub const IMAGE_REL_IA64_SECREL32: u32 = 14;
pub const IMAGE_REL_IA64_DIR32NB: u32 = 16;
pub const IMAGE_REL_IA64_SREL14: u32 = 17;
pub const IMAGE_REL_IA64_SREL22: u32 = 18;
pub const IMAGE_REL_IA64_SREL32: u32 = 19;
pub const IMAGE_REL_IA64_UREL32: u32 = 20;
pub const IMAGE_REL_IA64_PCREL60X: u32 = 21;
pub const IMAGE_REL_IA64_PCREL60B: u32 = 22;
pub const IMAGE_REL_IA64_PCREL60F: u32 = 23;
pub const IMAGE_REL_IA64_PCREL60I: u32 = 24;
pub const IMAGE_REL_IA64_PCREL60M: u32 = 25;
pub const IMAGE_REL_IA64_IMMGPREL64: u32 = 26;
pub const IMAGE_REL_IA64_TOKEN: u32 = 27;
pub const IMAGE_REL_IA64_GPREL32: u32 = 28;
pub const IMAGE_REL_IA64_ADDEND: u32 = 31;
pub const IMAGE_REL_CEF_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_CEF_ADDR32: u32 = 1;
pub const IMAGE_REL_CEF_ADDR64: u32 = 2;
pub const IMAGE_REL_CEF_ADDR32NB: u32 = 3;
pub const IMAGE_REL_CEF_SECTION: u32 = 4;
pub const IMAGE_REL_CEF_SECREL: u32 = 5;
pub const IMAGE_REL_CEF_TOKEN: u32 = 6;
pub const IMAGE_REL_CEE_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_CEE_ADDR32: u32 = 1;
pub const IMAGE_REL_CEE_ADDR64: u32 = 2;
pub const IMAGE_REL_CEE_ADDR32NB: u32 = 3;
pub const IMAGE_REL_CEE_SECTION: u32 = 4;
pub const IMAGE_REL_CEE_SECREL: u32 = 5;
pub const IMAGE_REL_CEE_TOKEN: u32 = 6;
pub const IMAGE_REL_M32R_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_M32R_ADDR32: u32 = 1;
pub const IMAGE_REL_M32R_ADDR32NB: u32 = 2;
pub const IMAGE_REL_M32R_ADDR24: u32 = 3;
pub const IMAGE_REL_M32R_GPREL16: u32 = 4;
pub const IMAGE_REL_M32R_PCREL24: u32 = 5;
pub const IMAGE_REL_M32R_PCREL16: u32 = 6;
pub const IMAGE_REL_M32R_PCREL8: u32 = 7;
pub const IMAGE_REL_M32R_REFHALF: u32 = 8;
pub const IMAGE_REL_M32R_REFHI: u32 = 9;
pub const IMAGE_REL_M32R_REFLO: u32 = 10;
pub const IMAGE_REL_M32R_PAIR: u32 = 11;
pub const IMAGE_REL_M32R_SECTION: u32 = 12;
pub const IMAGE_REL_M32R_SECREL32: u32 = 13;
pub const IMAGE_REL_M32R_TOKEN: u32 = 14;
pub const IMAGE_REL_EBC_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_EBC_ADDR32NB: u32 = 1;
pub const IMAGE_REL_EBC_REL32: u32 = 2;
pub const IMAGE_REL_EBC_SECTION: u32 = 3;
pub const IMAGE_REL_EBC_SECREL: u32 = 4;
pub const EMARCH_ENC_I17_IMM7B_INST_WORD_X: u32 = 3;
pub const EMARCH_ENC_I17_IMM7B_SIZE_X: u32 = 7;
pub const EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X: u32 = 4;
pub const EMARCH_ENC_I17_IMM7B_VAL_POS_X: u32 = 0;
pub const EMARCH_ENC_I17_IMM9D_INST_WORD_X: u32 = 3;
pub const EMARCH_ENC_I17_IMM9D_SIZE_X: u32 = 9;
pub const EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X: u32 = 18;
pub const EMARCH_ENC_I17_IMM9D_VAL_POS_X: u32 = 7;
pub const EMARCH_ENC_I17_IMM5C_INST_WORD_X: u32 = 3;
pub const EMARCH_ENC_I17_IMM5C_SIZE_X: u32 = 5;
pub const EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X: u32 = 13;
pub const EMARCH_ENC_I17_IMM5C_VAL_POS_X: u32 = 16;
pub const EMARCH_ENC_I17_IC_INST_WORD_X: u32 = 3;
pub const EMARCH_ENC_I17_IC_SIZE_X: u32 = 1;
pub const EMARCH_ENC_I17_IC_INST_WORD_POS_X: u32 = 12;
pub const EMARCH_ENC_I17_IC_VAL_POS_X: u32 = 21;
pub const EMARCH_ENC_I17_IMM41a_INST_WORD_X: u32 = 1;
pub const EMARCH_ENC_I17_IMM41a_SIZE_X: u32 = 10;
pub const EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X: u32 = 14;
pub const EMARCH_ENC_I17_IMM41a_VAL_POS_X: u32 = 22;
pub const EMARCH_ENC_I17_IMM41b_INST_WORD_X: u32 = 1;
pub const EMARCH_ENC_I17_IMM41b_SIZE_X: u32 = 8;
pub const EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X: u32 = 24;
pub const EMARCH_ENC_I17_IMM41b_VAL_POS_X: u32 = 32;
pub const EMARCH_ENC_I17_IMM41c_INST_WORD_X: u32 = 2;
pub const EMARCH_ENC_I17_IMM41c_SIZE_X: u32 = 23;
pub const EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X: u32 = 0;
pub const EMARCH_ENC_I17_IMM41c_VAL_POS_X: u32 = 40;
pub const EMARCH_ENC_I17_SIGN_INST_WORD_X: u32 = 3;
pub const EMARCH_ENC_I17_SIGN_SIZE_X: u32 = 1;
pub const EMARCH_ENC_I17_SIGN_INST_WORD_POS_X: u32 = 27;
pub const EMARCH_ENC_I17_SIGN_VAL_POS_X: u32 = 63;
pub const X3_OPCODE_INST_WORD_X: u32 = 3;
pub const X3_OPCODE_SIZE_X: u32 = 4;
pub const X3_OPCODE_INST_WORD_POS_X: u32 = 28;
pub const X3_OPCODE_SIGN_VAL_POS_X: u32 = 0;
pub const X3_I_INST_WORD_X: u32 = 3;
pub const X3_I_SIZE_X: u32 = 1;
pub const X3_I_INST_WORD_POS_X: u32 = 27;
pub const X3_I_SIGN_VAL_POS_X: u32 = 59;
pub const X3_D_WH_INST_WORD_X: u32 = 3;
pub const X3_D_WH_SIZE_X: u32 = 3;
pub const X3_D_WH_INST_WORD_POS_X: u32 = 24;
pub const X3_D_WH_SIGN_VAL_POS_X: u32 = 0;
pub const X3_IMM20_INST_WORD_X: u32 = 3;
pub const X3_IMM20_SIZE_X: u32 = 20;
pub const X3_IMM20_INST_WORD_POS_X: u32 = 4;
pub const X3_IMM20_SIGN_VAL_POS_X: u32 = 0;
pub const X3_IMM39_1_INST_WORD_X: u32 = 2;
pub const X3_IMM39_1_SIZE_X: u32 = 23;
pub const X3_IMM39_1_INST_WORD_POS_X: u32 = 0;
pub const X3_IMM39_1_SIGN_VAL_POS_X: u32 = 36;
pub const X3_IMM39_2_INST_WORD_X: u32 = 1;
pub const X3_IMM39_2_SIZE_X: u32 = 16;
pub const X3_IMM39_2_INST_WORD_POS_X: u32 = 16;
pub const X3_IMM39_2_SIGN_VAL_POS_X: u32 = 20;
pub const X3_P_INST_WORD_X: u32 = 3;
pub const X3_P_SIZE_X: u32 = 4;
pub const X3_P_INST_WORD_POS_X: u32 = 0;
pub const X3_P_SIGN_VAL_POS_X: u32 = 0;
pub const X3_TMPLT_INST_WORD_X: u32 = 0;
pub const X3_TMPLT_SIZE_X: u32 = 4;
pub const X3_TMPLT_INST_WORD_POS_X: u32 = 0;
pub const X3_TMPLT_SIGN_VAL_POS_X: u32 = 0;
pub const X3_BTYPE_QP_INST_WORD_X: u32 = 2;
pub const X3_BTYPE_QP_SIZE_X: u32 = 9;
pub const X3_BTYPE_QP_INST_WORD_POS_X: u32 = 23;
pub const X3_BTYPE_QP_INST_VAL_POS_X: u32 = 0;
pub const X3_EMPTY_INST_WORD_X: u32 = 1;
pub const X3_EMPTY_SIZE_X: u32 = 2;
pub const X3_EMPTY_INST_WORD_POS_X: u32 = 14;
pub const X3_EMPTY_INST_VAL_POS_X: u32 = 0;
pub const IMAGE_SIZEOF_LINENUMBER: u32 = 6;
pub const IMAGE_SIZEOF_BASE_RELOCATION: u32 = 8;
pub const IMAGE_REL_BASED_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_BASED_HIGH: u32 = 1;
pub const IMAGE_REL_BASED_LOW: u32 = 2;
pub const IMAGE_REL_BASED_HIGHLOW: u32 = 3;
pub const IMAGE_REL_BASED_HIGHADJ: u32 = 4;
pub const IMAGE_REL_BASED_MIPS_JMPADDR: u32 = 5;
pub const IMAGE_REL_BASED_ARM_MOV32: u32 = 5;
pub const IMAGE_REL_BASED_THUMB_MOV32: u32 = 7;
pub const IMAGE_REL_BASED_MIPS_JMPADDR16: u32 = 9;
pub const IMAGE_REL_BASED_IA64_IMM64: u32 = 9;
pub const IMAGE_REL_BASED_DIR64: u32 = 10;
pub const IMAGE_ARCHIVE_START_SIZE: u32 = 8;
pub const IMAGE_ARCHIVE_START: &'static [u8; 9usize] = b"!<arch>\n\0";
pub const IMAGE_ARCHIVE_END: &'static [u8; 3usize] = b"`\n\0";
pub const IMAGE_ARCHIVE_PAD: &'static [u8; 2usize] = b"\n\0";
pub const IMAGE_ARCHIVE_LINKER_MEMBER: &'static [u8; 17usize] = b"/               \0";
pub const IMAGE_ARCHIVE_LONGNAMES_MEMBER: &'static [u8; 17usize] = b"//              \0";
pub const IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR: u32 = 60;
pub const IMAGE_ORDINAL_FLAG64: i64 = -9223372036854775808;
pub const IMAGE_ORDINAL_FLAG32: u32 = 2147483648;
pub const IMAGE_ORDINAL_FLAG: i64 = -9223372036854775808;
pub const IMAGE_RESOURCE_NAME_IS_STRING: u32 = 2147483648;
pub const IMAGE_RESOURCE_DATA_IS_DIRECTORY: u32 = 2147483648;
pub const IMAGE_DEBUG_TYPE_UNKNOWN: u32 = 0;
pub const IMAGE_DEBUG_TYPE_COFF: u32 = 1;
pub const IMAGE_DEBUG_TYPE_CODEVIEW: u32 = 2;
pub const IMAGE_DEBUG_TYPE_FPO: u32 = 3;
pub const IMAGE_DEBUG_TYPE_MISC: u32 = 4;
pub const IMAGE_DEBUG_TYPE_EXCEPTION: u32 = 5;
pub const IMAGE_DEBUG_TYPE_FIXUP: u32 = 6;
pub const IMAGE_DEBUG_TYPE_OMAP_TO_SRC: u32 = 7;
pub const IMAGE_DEBUG_TYPE_OMAP_FROM_SRC: u32 = 8;
pub const IMAGE_DEBUG_TYPE_BORLAND: u32 = 9;
pub const IMAGE_DEBUG_TYPE_RESERVED10: u32 = 10;
pub const IMAGE_DEBUG_TYPE_CLSID: u32 = 11;
pub const FRAME_FPO: u32 = 0;
pub const FRAME_TRAP: u32 = 1;
pub const FRAME_TSS: u32 = 2;
pub const FRAME_NONFPO: u32 = 3;
pub const SIZEOF_RFPO_DATA: u32 = 16;
pub const IMAGE_DEBUG_MISC_EXENAME: u32 = 1;
pub const IMAGE_SEPARATE_DEBUG_SIGNATURE: u32 = 18756;
pub const NON_PAGED_DEBUG_SIGNATURE: u32 = 18766;
pub const IMAGE_SEPARATE_DEBUG_FLAGS_MASK: u32 = 32768;
pub const IMAGE_SEPARATE_DEBUG_MISMATCH: u32 = 32768;
pub const IMPORT_OBJECT_HDR_SIG2: u32 = 65535;
pub const _RTL_RUN_ONCE_DEF: u32 = 1;
pub const RTL_RUN_ONCE_CTX_RESERVED_BITS: u32 = 2;
pub const FAST_FAIL_LEGACY_GS_VIOLATION: u32 = 0;
pub const FAST_FAIL_VTGUARD_CHECK_FAILURE: u32 = 1;
pub const FAST_FAIL_STACK_COOKIE_CHECK_FAILURE: u32 = 2;
pub const FAST_FAIL_CORRUPT_LIST_ENTRY: u32 = 3;
pub const FAST_FAIL_INCORRECT_STACK: u32 = 4;
pub const FAST_FAIL_INVALID_ARG: u32 = 5;
pub const FAST_FAIL_GS_COOKIE_INIT: u32 = 6;
pub const FAST_FAIL_FATAL_APP_EXIT: u32 = 7;
pub const FAST_FAIL_RANGE_CHECK_FAILURE: u32 = 8;
pub const FAST_FAIL_UNSAFE_REGISTRY_ACCESS: u32 = 9;
pub const FAST_FAIL_INVALID_FAST_FAIL_CODE: u32 = 4294967295;
pub const HEAP_NO_SERIALIZE: u32 = 1;
pub const HEAP_GROWABLE: u32 = 2;
pub const HEAP_GENERATE_EXCEPTIONS: u32 = 4;
pub const HEAP_ZERO_MEMORY: u32 = 8;
pub const HEAP_REALLOC_IN_PLACE_ONLY: u32 = 16;
pub const HEAP_TAIL_CHECKING_ENABLED: u32 = 32;
pub const HEAP_FREE_CHECKING_ENABLED: u32 = 64;
pub const HEAP_DISABLE_COALESCE_ON_FREE: u32 = 128;
pub const HEAP_CREATE_ALIGN_16: u32 = 65536;
pub const HEAP_CREATE_ENABLE_TRACING: u32 = 131072;
pub const HEAP_CREATE_ENABLE_EXECUTE: u32 = 262144;
pub const HEAP_MAXIMUM_TAG: u32 = 4095;
pub const HEAP_PSEUDO_TAG_FLAG: u32 = 32768;
pub const HEAP_TAG_SHIFT: u32 = 18;
pub const IS_TEXT_UNICODE_ASCII16: u32 = 1;
pub const IS_TEXT_UNICODE_REVERSE_ASCII16: u32 = 16;
pub const IS_TEXT_UNICODE_STATISTICS: u32 = 2;
pub const IS_TEXT_UNICODE_REVERSE_STATISTICS: u32 = 32;
pub const IS_TEXT_UNICODE_CONTROLS: u32 = 4;
pub const IS_TEXT_UNICODE_REVERSE_CONTROLS: u32 = 64;
pub const IS_TEXT_UNICODE_SIGNATURE: u32 = 8;
pub const IS_TEXT_UNICODE_REVERSE_SIGNATURE: u32 = 128;
pub const IS_TEXT_UNICODE_ILLEGAL_CHARS: u32 = 256;
pub const IS_TEXT_UNICODE_ODD_LENGTH: u32 = 512;
pub const IS_TEXT_UNICODE_DBCS_LEADBYTE: u32 = 1024;
pub const IS_TEXT_UNICODE_NULL_BYTES: u32 = 4096;
pub const IS_TEXT_UNICODE_UNICODE_MASK: u32 = 15;
pub const IS_TEXT_UNICODE_REVERSE_MASK: u32 = 240;
pub const IS_TEXT_UNICODE_NOT_UNICODE_MASK: u32 = 3840;
pub const IS_TEXT_UNICODE_NOT_ASCII_MASK: u32 = 61440;
pub const COMPRESSION_FORMAT_NONE: u32 = 0;
pub const COMPRESSION_FORMAT_DEFAULT: u32 = 1;
pub const COMPRESSION_FORMAT_LZNT1: u32 = 2;
pub const COMPRESSION_FORMAT_XPRESS: u32 = 3;
pub const COMPRESSION_FORMAT_XPRESS_HUFF: u32 = 4;
pub const COMPRESSION_ENGINE_STANDARD: u32 = 0;
pub const COMPRESSION_ENGINE_MAXIMUM: u32 = 256;
pub const COMPRESSION_ENGINE_HIBER: u32 = 512;
pub const SEF_DACL_AUTO_INHERIT: u32 = 1;
pub const SEF_SACL_AUTO_INHERIT: u32 = 2;
pub const SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT: u32 = 4;
pub const SEF_AVOID_PRIVILEGE_CHECK: u32 = 8;
pub const SEF_AVOID_OWNER_CHECK: u32 = 16;
pub const SEF_DEFAULT_OWNER_FROM_PARENT: u32 = 32;
pub const SEF_DEFAULT_GROUP_FROM_PARENT: u32 = 64;
pub const SEF_MACL_NO_WRITE_UP: u32 = 256;
pub const SEF_MACL_NO_READ_UP: u32 = 512;
pub const SEF_MACL_NO_EXECUTE_UP: u32 = 1024;
pub const SEF_AVOID_OWNER_RESTRICTION: u32 = 4096;
pub const SEF_MACL_VALID_FLAGS: u32 = 1792;
pub const MESSAGE_RESOURCE_UNICODE: u32 = 1;
pub const VER_EQUAL: u32 = 1;
pub const VER_GREATER: u32 = 2;
pub const VER_GREATER_EQUAL: u32 = 3;
pub const VER_LESS: u32 = 4;
pub const VER_LESS_EQUAL: u32 = 5;
pub const VER_AND: u32 = 6;
pub const VER_OR: u32 = 7;
pub const VER_CONDITION_MASK: u32 = 7;
pub const VER_NUM_BITS_PER_CONDITION_MASK: u32 = 3;
pub const VER_MINORVERSION: u32 = 1;
pub const VER_MAJORVERSION: u32 = 2;
pub const VER_BUILDNUMBER: u32 = 4;
pub const VER_PLATFORMID: u32 = 8;
pub const VER_SERVICEPACKMINOR: u32 = 16;
pub const VER_SERVICEPACKMAJOR: u32 = 32;
pub const VER_SUITENAME: u32 = 64;
pub const VER_PRODUCT_TYPE: u32 = 128;
pub const VER_NT_WORKSTATION: u32 = 1;
pub const VER_NT_DOMAIN_CONTROLLER: u32 = 2;
pub const VER_NT_SERVER: u32 = 3;
pub const VER_PLATFORM_WIN32s: u32 = 0;
pub const VER_PLATFORM_WIN32_WINDOWS: u32 = 1;
pub const VER_PLATFORM_WIN32_NT: u32 = 2;
pub const RTL_UMS_VERSION: u32 = 256;
pub const RTL_CRITSECT_TYPE: u32 = 0;
pub const RTL_RESOURCE_TYPE: u32 = 1;
pub const RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO: u32 = 16777216;
pub const RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN: u32 = 33554432;
pub const RTL_CRITICAL_SECTION_FLAG_STATIC_INIT: u32 = 67108864;
pub const RTL_CRITICAL_SECTION_FLAG_RESOURCE_TYPE: u32 = 134217728;
pub const RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO: u32 = 268435456;
pub const RTL_CRITICAL_SECTION_ALL_FLAG_BITS: u32 = 4278190080;
pub const RTL_CRITICAL_SECTION_FLAG_RESERVED: u32 = 3758096384;
pub const RTL_CRITICAL_SECTION_DEBUG_FLAG_STATIC_INIT: u32 = 1;
pub const RTL_CONDITION_VARIABLE_LOCKMODE_SHARED: u32 = 1;
pub const WT_EXECUTEDEFAULT: u32 = 0;
pub const WT_EXECUTEINIOTHREAD: u32 = 1;
pub const WT_EXECUTEINUITHREAD: u32 = 2;
pub const WT_EXECUTEINWAITTHREAD: u32 = 4;
pub const WT_EXECUTEONLYONCE: u32 = 8;
pub const WT_EXECUTEINTIMERTHREAD: u32 = 32;
pub const WT_EXECUTELONGFUNCTION: u32 = 16;
pub const WT_EXECUTEINPERSISTENTIOTHREAD: u32 = 64;
pub const WT_EXECUTEINPERSISTENTTHREAD: u32 = 128;
pub const WT_TRANSFER_IMPERSONATION: u32 = 256;
pub const WT_EXECUTEDELETEWAIT: u32 = 8;
pub const WT_EXECUTEINLONGTHREAD: u32 = 16;
pub const MAX_SUPPORTED_OS_NUM: u32 = 4;
pub const ACTIVATION_CONTEXT_PATH_TYPE_NONE: u32 = 1;
pub const ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE: u32 = 2;
pub const ACTIVATION_CONTEXT_PATH_TYPE_URL: u32 = 3;
pub const ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF: u32 = 4;
pub const INVALID_OS_COUNT: u32 = 65535;
pub const CREATE_BOUNDARY_DESCRIPTOR_ADD_APPCONTAINER_SID: u32 = 1;
pub const RTL_VRF_FLG_FULL_PAGE_HEAP: u32 = 1;
pub const RTL_VRF_FLG_RESERVED_DONOTUSE: u32 = 2;
pub const RTL_VRF_FLG_HANDLE_CHECKS: u32 = 4;
pub const RTL_VRF_FLG_STACK_CHECKS: u32 = 8;
pub const RTL_VRF_FLG_APPCOMPAT_CHECKS: u32 = 16;
pub const RTL_VRF_FLG_TLS_CHECKS: u32 = 32;
pub const RTL_VRF_FLG_DIRTY_STACKS: u32 = 64;
pub const RTL_VRF_FLG_RPC_CHECKS: u32 = 128;
pub const RTL_VRF_FLG_COM_CHECKS: u32 = 256;
pub const RTL_VRF_FLG_DANGEROUS_APIS: u32 = 512;
pub const RTL_VRF_FLG_RACE_CHECKS: u32 = 1024;
pub const RTL_VRF_FLG_DEADLOCK_CHECKS: u32 = 2048;
pub const RTL_VRF_FLG_FIRST_CHANCE_EXCEPTION_CHECKS: u32 = 4096;
pub const RTL_VRF_FLG_VIRTUAL_MEM_CHECKS: u32 = 8192;
pub const RTL_VRF_FLG_ENABLE_LOGGING: u32 = 16384;
pub const RTL_VRF_FLG_FAST_FILL_HEAP: u32 = 32768;
pub const RTL_VRF_FLG_VIRTUAL_SPACE_TRACKING: u32 = 65536;
pub const RTL_VRF_FLG_ENABLED_SYSTEM_WIDE: u32 = 131072;
pub const RTL_VRF_FLG_MISCELLANEOUS_CHECKS: u32 = 131072;
pub const RTL_VRF_FLG_LOCK_CHECKS: u32 = 262144;
pub const APPLICATION_VERIFIER_INTERNAL_ERROR: u32 = 2147483648;
pub const APPLICATION_VERIFIER_INTERNAL_WARNING: u32 = 1073741824;
pub const APPLICATION_VERIFIER_NO_BREAK: u32 = 536870912;
pub const APPLICATION_VERIFIER_CONTINUABLE_BREAK: u32 = 268435456;
pub const APPLICATION_VERIFIER_UNKNOWN_ERROR: u32 = 1;
pub const APPLICATION_VERIFIER_ACCESS_VIOLATION: u32 = 2;
pub const APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS: u32 = 3;
pub const APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST: u32 = 4;
pub const APPLICATION_VERIFIER_BAD_HEAP_HANDLE: u32 = 5;
pub const APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE: u32 = 6;
pub const APPLICATION_VERIFIER_DOUBLE_FREE: u32 = 7;
pub const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK: u32 = 8;
pub const APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP: u32 = 9;
pub const APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION: u32 = 10;
pub const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_HEADER: u32 = 11;
pub const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_PROBING: u32 = 12;
pub const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_HEADER: u32 = 13;
pub const APPLICATION_VERIFIER_CORRUPTED_FREED_HEAP_BLOCK: u32 = 14;
pub const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_SUFFIX: u32 = 15;
pub const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_START_STAMP: u32 = 16;
pub const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_END_STAMP: u32 = 17;
pub const APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK_PREFIX: u32 = 18;
pub const APPLICATION_VERIFIER_FIRST_CHANCE_ACCESS_VIOLATION: u32 = 19;
pub const APPLICATION_VERIFIER_CORRUPTED_HEAP_LIST: u32 = 20;
pub const APPLICATION_VERIFIER_TERMINATE_THREAD_CALL: u32 = 256;
pub const APPLICATION_VERIFIER_STACK_OVERFLOW: u32 = 257;
pub const APPLICATION_VERIFIER_INVALID_EXIT_PROCESS_CALL: u32 = 258;
pub const APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK: u32 = 512;
pub const APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL: u32 = 513;
pub const APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP: u32 = 514;
pub const APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE: u32 = 515;
pub const APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY: u32 = 516;
pub const APPLICATION_VERIFIER_LOCK_CORRUPTED: u32 = 517;
pub const APPLICATION_VERIFIER_LOCK_INVALID_OWNER: u32 = 518;
pub const APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT: u32 = 519;
pub const APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT: u32 = 520;
pub const APPLICATION_VERIFIER_LOCK_OVER_RELEASED: u32 = 521;
pub const APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED: u32 = 528;
pub const APPLICATION_VERIFIER_LOCK_ALREADY_INITIALIZED: u32 = 529;
pub const APPLICATION_VERIFIER_LOCK_IN_FREED_VMEM: u32 = 530;
pub const APPLICATION_VERIFIER_LOCK_IN_UNMAPPED_MEM: u32 = 531;
pub const APPLICATION_VERIFIER_THREAD_NOT_LOCK_OWNER: u32 = 532;
pub const APPLICATION_VERIFIER_INVALID_HANDLE: u32 = 768;
pub const APPLICATION_VERIFIER_INVALID_TLS_VALUE: u32 = 769;
pub const APPLICATION_VERIFIER_INCORRECT_WAIT_CALL: u32 = 770;
pub const APPLICATION_VERIFIER_NULL_HANDLE: u32 = 771;
pub const APPLICATION_VERIFIER_WAIT_IN_DLLMAIN: u32 = 772;
pub const APPLICATION_VERIFIER_COM_ERROR: u32 = 1024;
pub const APPLICATION_VERIFIER_COM_API_IN_DLLMAIN: u32 = 1025;
pub const APPLICATION_VERIFIER_COM_UNHANDLED_EXCEPTION: u32 = 1026;
pub const APPLICATION_VERIFIER_COM_UNBALANCED_COINIT: u32 = 1027;
pub const APPLICATION_VERIFIER_COM_UNBALANCED_OLEINIT: u32 = 1028;
pub const APPLICATION_VERIFIER_COM_UNBALANCED_SWC: u32 = 1029;
pub const APPLICATION_VERIFIER_COM_NULL_DACL: u32 = 1030;
pub const APPLICATION_VERIFIER_COM_UNSAFE_IMPERSONATION: u32 = 1031;
pub const APPLICATION_VERIFIER_COM_SMUGGLED_WRAPPER: u32 = 1032;
pub const APPLICATION_VERIFIER_COM_SMUGGLED_PROXY: u32 = 1033;
pub const APPLICATION_VERIFIER_COM_CF_SUCCESS_WITH_NULL: u32 = 1034;
pub const APPLICATION_VERIFIER_COM_GCO_SUCCESS_WITH_NULL: u32 = 1035;
pub const APPLICATION_VERIFIER_COM_OBJECT_IN_FREED_MEMORY: u32 = 1036;
pub const APPLICATION_VERIFIER_COM_OBJECT_IN_UNLOADED_DLL: u32 = 1037;
pub const APPLICATION_VERIFIER_COM_VTBL_IN_FREED_MEMORY: u32 = 1038;
pub const APPLICATION_VERIFIER_COM_VTBL_IN_UNLOADED_DLL: u32 = 1039;
pub const APPLICATION_VERIFIER_COM_HOLDING_LOCKS_ON_CALL: u32 = 1040;
pub const APPLICATION_VERIFIER_RPC_ERROR: u32 = 1280;
pub const APPLICATION_VERIFIER_INVALID_FREEMEM: u32 = 1536;
pub const APPLICATION_VERIFIER_INVALID_ALLOCMEM: u32 = 1537;
pub const APPLICATION_VERIFIER_INVALID_MAPVIEW: u32 = 1538;
pub const APPLICATION_VERIFIER_PROBE_INVALID_ADDRESS: u32 = 1539;
pub const APPLICATION_VERIFIER_PROBE_FREE_MEM: u32 = 1540;
pub const APPLICATION_VERIFIER_PROBE_GUARD_PAGE: u32 = 1541;
pub const APPLICATION_VERIFIER_PROBE_NULL: u32 = 1542;
pub const APPLICATION_VERIFIER_PROBE_INVALID_START_OR_SIZE: u32 = 1543;
pub const APPLICATION_VERIFIER_SIZE_HEAP_UNEXPECTED_EXCEPTION: u32 = 1560;
pub const PERFORMANCE_DATA_VERSION: u32 = 1;
pub const READ_THREAD_PROFILING_FLAG_DISPATCHING: u32 = 1;
pub const READ_THREAD_PROFILING_FLAG_HARDWARE_COUNTERS: u32 = 2;
pub const DLL_PROCESS_ATTACH: u32 = 1;
pub const DLL_THREAD_ATTACH: u32 = 2;
pub const DLL_THREAD_DETACH: u32 = 3;
pub const DLL_PROCESS_DETACH: u32 = 0;
pub const DLL_PROCESS_VERIFIER: u32 = 4;
pub const EVENTLOG_SEQUENTIAL_READ: u32 = 1;
pub const EVENTLOG_SEEK_READ: u32 = 2;
pub const EVENTLOG_FORWARDS_READ: u32 = 4;
pub const EVENTLOG_BACKWARDS_READ: u32 = 8;
pub const EVENTLOG_SUCCESS: u32 = 0;
pub const EVENTLOG_ERROR_TYPE: u32 = 1;
pub const EVENTLOG_WARNING_TYPE: u32 = 2;
pub const EVENTLOG_INFORMATION_TYPE: u32 = 4;
pub const EVENTLOG_AUDIT_SUCCESS: u32 = 8;
pub const EVENTLOG_AUDIT_FAILURE: u32 = 16;
pub const EVENTLOG_START_PAIRED_EVENT: u32 = 1;
pub const EVENTLOG_END_PAIRED_EVENT: u32 = 2;
pub const EVENTLOG_END_ALL_PAIRED_EVENTS: u32 = 4;
pub const EVENTLOG_PAIRED_EVENT_ACTIVE: u32 = 8;
pub const EVENTLOG_PAIRED_EVENT_INACTIVE: u32 = 16;
pub const MAXLOGICALLOGNAMESIZE: u32 = 256;
pub const KEY_QUERY_VALUE: u32 = 1;
pub const KEY_SET_VALUE: u32 = 2;
pub const KEY_CREATE_SUB_KEY: u32 = 4;
pub const KEY_ENUMERATE_SUB_KEYS: u32 = 8;
pub const KEY_NOTIFY: u32 = 16;
pub const KEY_CREATE_LINK: u32 = 32;
pub const KEY_WOW64_64KEY: u32 = 256;
pub const KEY_WOW64_32KEY: u32 = 512;
pub const KEY_WOW64_RES: u32 = 768;
pub const REG_STANDARD_FORMAT: u32 = 1;
pub const REG_LATEST_FORMAT: u32 = 2;
pub const REG_NO_COMPRESSION: u32 = 4;
pub const REG_FORCE_UNLOAD: u32 = 1;
pub const REG_NONE: u32 = 0;
pub const REG_SZ: u32 = 1;
pub const REG_EXPAND_SZ: u32 = 2;
pub const REG_BINARY: u32 = 3;
pub const REG_DWORD: u32 = 4;
pub const REG_DWORD_LITTLE_ENDIAN: u32 = 4;
pub const REG_DWORD_BIG_ENDIAN: u32 = 5;
pub const REG_LINK: u32 = 6;
pub const REG_MULTI_SZ: u32 = 7;
pub const REG_RESOURCE_LIST: u32 = 8;
pub const REG_FULL_RESOURCE_DESCRIPTOR: u32 = 9;
pub const REG_RESOURCE_REQUIREMENTS_LIST: u32 = 10;
pub const REG_QWORD: u32 = 11;
pub const REG_QWORD_LITTLE_ENDIAN: u32 = 11;
pub const SERVICE_KERNEL_DRIVER: u32 = 1;
pub const SERVICE_FILE_SYSTEM_DRIVER: u32 = 2;
pub const SERVICE_ADAPTER: u32 = 4;
pub const SERVICE_RECOGNIZER_DRIVER: u32 = 8;
pub const SERVICE_DRIVER: u32 = 11;
pub const SERVICE_WIN32_OWN_PROCESS: u32 = 16;
pub const SERVICE_WIN32_SHARE_PROCESS: u32 = 32;
pub const SERVICE_WIN32: u32 = 48;
pub const SERVICE_INTERACTIVE_PROCESS: u32 = 256;
pub const SERVICE_TYPE_ALL: u32 = 319;
pub const SERVICE_BOOT_START: u32 = 0;
pub const SERVICE_SYSTEM_START: u32 = 1;
pub const SERVICE_AUTO_START: u32 = 2;
pub const SERVICE_DEMAND_START: u32 = 3;
pub const SERVICE_DISABLED: u32 = 4;
pub const SERVICE_ERROR_IGNORE: u32 = 0;
pub const SERVICE_ERROR_NORMAL: u32 = 1;
pub const SERVICE_ERROR_SEVERE: u32 = 2;
pub const SERVICE_ERROR_CRITICAL: u32 = 3;
pub const CM_SERVICE_NETWORK_BOOT_LOAD: u32 = 1;
pub const CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD: u32 = 2;
pub const CM_SERVICE_USB_DISK_BOOT_LOAD: u32 = 4;
pub const CM_SERVICE_SD_DISK_BOOT_LOAD: u32 = 8;
pub const CM_SERVICE_USB3_DISK_BOOT_LOAD: u32 = 16;
pub const CM_SERVICE_MEASURED_BOOT_LOAD: u32 = 32;
pub const CM_SERVICE_VERIFIER_BOOT_LOAD: u32 = 64;
pub const CM_SERVICE_WINPE_BOOT_LOAD: u32 = 128;
pub const CM_SERVICE_VALID_PROMOTION_MASK: u32 = 255;
pub const TAPE_DRIVE_FIXED: u32 = 1;
pub const TAPE_DRIVE_SELECT: u32 = 2;
pub const TAPE_DRIVE_INITIATOR: u32 = 4;
pub const TAPE_DRIVE_ERASE_SHORT: u32 = 16;
pub const TAPE_DRIVE_ERASE_LONG: u32 = 32;
pub const TAPE_DRIVE_ERASE_BOP_ONLY: u32 = 64;
pub const TAPE_DRIVE_ERASE_IMMEDIATE: u32 = 128;
pub const TAPE_DRIVE_TAPE_CAPACITY: u32 = 256;
pub const TAPE_DRIVE_TAPE_REMAINING: u32 = 512;
pub const TAPE_DRIVE_FIXED_BLOCK: u32 = 1024;
pub const TAPE_DRIVE_VARIABLE_BLOCK: u32 = 2048;
pub const TAPE_DRIVE_WRITE_PROTECT: u32 = 4096;
pub const TAPE_DRIVE_EOT_WZ_SIZE: u32 = 8192;
pub const TAPE_DRIVE_ECC: u32 = 65536;
pub const TAPE_DRIVE_COMPRESSION: u32 = 131072;
pub const TAPE_DRIVE_PADDING: u32 = 262144;
pub const TAPE_DRIVE_REPORT_SMKS: u32 = 524288;
pub const TAPE_DRIVE_GET_ABSOLUTE_BLK: u32 = 1048576;
pub const TAPE_DRIVE_GET_LOGICAL_BLK: u32 = 2097152;
pub const TAPE_DRIVE_SET_EOT_WZ_SIZE: u32 = 4194304;
pub const TAPE_DRIVE_EJECT_MEDIA: u32 = 16777216;
pub const TAPE_DRIVE_CLEAN_REQUESTS: u32 = 33554432;
pub const TAPE_DRIVE_SET_CMP_BOP_ONLY: u32 = 67108864;
pub const TAPE_DRIVE_RESERVED_BIT: u32 = 2147483648;
pub const TAPE_DRIVE_LOAD_UNLOAD: u32 = 2147483649;
pub const TAPE_DRIVE_TENSION: u32 = 2147483650;
pub const TAPE_DRIVE_LOCK_UNLOCK: u32 = 2147483652;
pub const TAPE_DRIVE_REWIND_IMMEDIATE: u32 = 2147483656;
pub const TAPE_DRIVE_SET_BLOCK_SIZE: u32 = 2147483664;
pub const TAPE_DRIVE_LOAD_UNLD_IMMED: u32 = 2147483680;
pub const TAPE_DRIVE_TENSION_IMMED: u32 = 2147483712;
pub const TAPE_DRIVE_LOCK_UNLK_IMMED: u32 = 2147483776;
pub const TAPE_DRIVE_SET_ECC: u32 = 2147483904;
pub const TAPE_DRIVE_SET_COMPRESSION: u32 = 2147484160;
pub const TAPE_DRIVE_SET_PADDING: u32 = 2147484672;
pub const TAPE_DRIVE_SET_REPORT_SMKS: u32 = 2147485696;
pub const TAPE_DRIVE_ABSOLUTE_BLK: u32 = 2147487744;
pub const TAPE_DRIVE_ABS_BLK_IMMED: u32 = 2147491840;
pub const TAPE_DRIVE_LOGICAL_BLK: u32 = 2147500032;
pub const TAPE_DRIVE_LOG_BLK_IMMED: u32 = 2147516416;
pub const TAPE_DRIVE_END_OF_DATA: u32 = 2147549184;
pub const TAPE_DRIVE_RELATIVE_BLKS: u32 = 2147614720;
pub const TAPE_DRIVE_FILEMARKS: u32 = 2147745792;
pub const TAPE_DRIVE_SEQUENTIAL_FMKS: u32 = 2148007936;
pub const TAPE_DRIVE_SETMARKS: u32 = 2148532224;
pub const TAPE_DRIVE_SEQUENTIAL_SMKS: u32 = 2149580800;
pub const TAPE_DRIVE_REVERSE_POSITION: u32 = 2151677952;
pub const TAPE_DRIVE_SPACE_IMMEDIATE: u32 = 2155872256;
pub const TAPE_DRIVE_WRITE_SETMARKS: u32 = 2164260864;
pub const TAPE_DRIVE_WRITE_FILEMARKS: u32 = 2181038080;
pub const TAPE_DRIVE_WRITE_SHORT_FMKS: u32 = 2214592512;
pub const TAPE_DRIVE_WRITE_LONG_FMKS: u32 = 2281701376;
pub const TAPE_DRIVE_WRITE_MARK_IMMED: u32 = 2415919104;
pub const TAPE_DRIVE_FORMAT: u32 = 2684354560;
pub const TAPE_DRIVE_FORMAT_IMMEDIATE: u32 = 3221225472;
pub const TAPE_DRIVE_HIGH_FEATURES: u32 = 2147483648;
pub const TRANSACTION_MANAGER_VOLATILE: u32 = 1;
pub const TRANSACTION_MANAGER_COMMIT_DEFAULT: u32 = 0;
pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_VOLUME: u32 = 2;
pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_HIVES: u32 = 4;
pub const TRANSACTION_MANAGER_COMMIT_LOWEST: u32 = 8;
pub const TRANSACTION_MANAGER_CORRUPT_FOR_RECOVERY: u32 = 16;
pub const TRANSACTION_MANAGER_CORRUPT_FOR_PROGRESS: u32 = 32;
pub const TRANSACTION_MANAGER_MAXIMUM_OPTION: u32 = 63;
pub const TRANSACTION_DO_NOT_PROMOTE: u32 = 1;
pub const TRANSACTION_MAXIMUM_OPTION: u32 = 1;
pub const RESOURCE_MANAGER_VOLATILE: u32 = 1;
pub const RESOURCE_MANAGER_COMMUNICATION: u32 = 2;
pub const RESOURCE_MANAGER_MAXIMUM_OPTION: u32 = 3;
pub const CRM_PROTOCOL_EXPLICIT_MARSHAL_ONLY: u32 = 1;
pub const CRM_PROTOCOL_DYNAMIC_MARSHAL_INFO: u32 = 2;
pub const CRM_PROTOCOL_MAXIMUM_OPTION: u32 = 3;
pub const ENLISTMENT_SUPERIOR: u32 = 1;
pub const ENLISTMENT_MAXIMUM_OPTION: u32 = 1;
pub const TRANSACTION_NOTIFY_MASK: u32 = 1073741823;
pub const TRANSACTION_NOTIFY_PREPREPARE: u32 = 1;
pub const TRANSACTION_NOTIFY_PREPARE: u32 = 2;
pub const TRANSACTION_NOTIFY_COMMIT: u32 = 4;
pub const TRANSACTION_NOTIFY_ROLLBACK: u32 = 8;
pub const TRANSACTION_NOTIFY_PREPREPARE_COMPLETE: u32 = 16;
pub const TRANSACTION_NOTIFY_PREPARE_COMPLETE: u32 = 32;
pub const TRANSACTION_NOTIFY_COMMIT_COMPLETE: u32 = 64;
pub const TRANSACTION_NOTIFY_ROLLBACK_COMPLETE: u32 = 128;
pub const TRANSACTION_NOTIFY_RECOVER: u32 = 256;
pub const TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT: u32 = 512;
pub const TRANSACTION_NOTIFY_DELEGATE_COMMIT: u32 = 1024;
pub const TRANSACTION_NOTIFY_RECOVER_QUERY: u32 = 2048;
pub const TRANSACTION_NOTIFY_ENLIST_PREPREPARE: u32 = 4096;
pub const TRANSACTION_NOTIFY_LAST_RECOVER: u32 = 8192;
pub const TRANSACTION_NOTIFY_INDOUBT: u32 = 16384;
pub const TRANSACTION_NOTIFY_PROPAGATE_PULL: u32 = 32768;
pub const TRANSACTION_NOTIFY_PROPAGATE_PUSH: u32 = 65536;
pub const TRANSACTION_NOTIFY_MARSHAL: u32 = 131072;
pub const TRANSACTION_NOTIFY_ENLIST_MASK: u32 = 262144;
pub const TRANSACTION_NOTIFY_RM_DISCONNECTED: u32 = 16777216;
pub const TRANSACTION_NOTIFY_TM_ONLINE: u32 = 33554432;
pub const TRANSACTION_NOTIFY_COMMIT_REQUEST: u32 = 67108864;
pub const TRANSACTION_NOTIFY_PROMOTE: u32 = 134217728;
pub const TRANSACTION_NOTIFY_PROMOTE_NEW: u32 = 268435456;
pub const TRANSACTION_NOTIFY_REQUEST_OUTCOME: u32 = 536870912;
pub const TRANSACTION_NOTIFY_COMMIT_FINALIZE: u32 = 1073741824;
pub const TRANSACTIONMANAGER_OBJECT_PATH: &'static [u8; 21usize] = b"\\TransactionManager\\\0";
pub const TRANSACTION_OBJECT_PATH: &'static [u8; 14usize] = b"\\Transaction\\\0";
pub const ENLISTMENT_OBJECT_PATH: &'static [u8; 13usize] = b"\\Enlistment\\\0";
pub const RESOURCE_MANAGER_OBJECT_PATH: &'static [u8; 18usize] = b"\\ResourceManager\\\0";
pub const TRANSACTION_NOTIFICATION_TM_ONLINE_FLAG_IS_CLUSTERED: u32 = 1;
pub const KTM_MARSHAL_BLOB_VERSION_MAJOR: u32 = 1;
pub const KTM_MARSHAL_BLOB_VERSION_MINOR: u32 = 1;
pub const MAX_TRANSACTION_DESCRIPTION_LENGTH: u32 = 64;
pub const MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH: u32 = 64;
pub const TRANSACTIONMANAGER_QUERY_INFORMATION: u32 = 1;
pub const TRANSACTIONMANAGER_SET_INFORMATION: u32 = 2;
pub const TRANSACTIONMANAGER_RECOVER: u32 = 4;
pub const TRANSACTIONMANAGER_RENAME: u32 = 8;
pub const TRANSACTIONMANAGER_CREATE_RM: u32 = 16;
pub const TRANSACTIONMANAGER_BIND_TRANSACTION: u32 = 32;
pub const TRANSACTION_QUERY_INFORMATION: u32 = 1;
pub const TRANSACTION_SET_INFORMATION: u32 = 2;
pub const TRANSACTION_ENLIST: u32 = 4;
pub const TRANSACTION_COMMIT: u32 = 8;
pub const TRANSACTION_ROLLBACK: u32 = 16;
pub const TRANSACTION_PROPAGATE: u32 = 32;
pub const TRANSACTION_RIGHT_RESERVED1: u32 = 64;
pub const RESOURCEMANAGER_QUERY_INFORMATION: u32 = 1;
pub const RESOURCEMANAGER_SET_INFORMATION: u32 = 2;
pub const RESOURCEMANAGER_RECOVER: u32 = 4;
pub const RESOURCEMANAGER_ENLIST: u32 = 8;
pub const RESOURCEMANAGER_GET_NOTIFICATION: u32 = 16;
pub const RESOURCEMANAGER_REGISTER_PROTOCOL: u32 = 32;
pub const RESOURCEMANAGER_COMPLETE_PROPAGATION: u32 = 64;
pub const ENLISTMENT_QUERY_INFORMATION: u32 = 1;
pub const ENLISTMENT_SET_INFORMATION: u32 = 2;
pub const ENLISTMENT_RECOVER: u32 = 4;
pub const ENLISTMENT_SUBORDINATE_RIGHTS: u32 = 8;
pub const ENLISTMENT_SUPERIOR_RIGHTS: u32 = 16;
pub const WOW64_CONTEXT_i386: u32 = 65536;
pub const WOW64_CONTEXT_i486: u32 = 65536;
pub const WOW64_CONTEXT_EXCEPTION_ACTIVE: u32 = 134217728;
pub const WOW64_CONTEXT_SERVICE_ACTIVE: u32 = 268435456;
pub const WOW64_CONTEXT_EXCEPTION_REQUEST: u32 = 1073741824;
pub const WOW64_CONTEXT_EXCEPTION_REPORTING: u32 = 2147483648;
pub const WOW64_SIZE_OF_80387_REGISTERS: u32 = 80;
pub const WOW64_MAXIMUM_SUPPORTED_EXTENSION: u32 = 512;
pub const ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION: u32 = 1;
pub const ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION: u32 = 2;
pub const ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION: u32 = 3;
pub const ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION: u32 = 4;
pub const ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION: u32 = 5;
pub const ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION: u32 = 6;
pub const ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION: u32 = 7;
pub const ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE: u32 = 8;
pub const ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES: u32 = 9;
pub const ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS: u32 = 10;
pub const ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO: u32 = 11;
pub const HMONITOR_DECLARED: u32 = 1;
pub const DM_UPDATE: u32 = 1;
pub const DM_COPY: u32 = 2;
pub const DM_PROMPT: u32 = 4;
pub const DM_MODIFY: u32 = 8;
pub const DM_IN_BUFFER: u32 = 8;
pub const DM_IN_PROMPT: u32 = 4;
pub const DM_OUT_BUFFER: u32 = 2;
pub const DM_OUT_DEFAULT: u32 = 1;
pub const DC_FIELDS: u32 = 1;
pub const DC_PAPERS: u32 = 2;
pub const DC_PAPERSIZE: u32 = 3;
pub const DC_MINEXTENT: u32 = 4;
pub const DC_MAXEXTENT: u32 = 5;
pub const DC_BINS: u32 = 6;
pub const DC_DUPLEX: u32 = 7;
pub const DC_SIZE: u32 = 8;
pub const DC_EXTRA: u32 = 9;
pub const DC_VERSION: u32 = 10;
pub const DC_DRIVER: u32 = 11;
pub const DC_BINNAMES: u32 = 12;
pub const DC_ENUMRESOLUTIONS: u32 = 13;
pub const DC_FILEDEPENDENCIES: u32 = 14;
pub const DC_TRUETYPE: u32 = 15;
pub const DC_PAPERNAMES: u32 = 16;
pub const DC_ORIENTATION: u32 = 17;
pub const DC_COPIES: u32 = 18;
pub const FIND_FIRST_EX_CASE_SENSITIVE: u32 = 1;
pub const FIND_FIRST_EX_LARGE_FETCH: u32 = 2;
pub const LOCKFILE_FAIL_IMMEDIATELY: u32 = 1;
pub const LOCKFILE_EXCLUSIVE_LOCK: u32 = 2;
pub const PROCESS_HEAP_REGION: u32 = 1;
pub const PROCESS_HEAP_UNCOMMITTED_RANGE: u32 = 2;
pub const PROCESS_HEAP_ENTRY_BUSY: u32 = 4;
pub const PROCESS_HEAP_SEG_ALLOC: u32 = 8;
pub const PROCESS_HEAP_ENTRY_MOVEABLE: u32 = 16;
pub const PROCESS_HEAP_ENTRY_DDESHARE: u32 = 32;
pub const EXCEPTION_DEBUG_EVENT: u32 = 1;
pub const CREATE_THREAD_DEBUG_EVENT: u32 = 2;
pub const CREATE_PROCESS_DEBUG_EVENT: u32 = 3;
pub const EXIT_THREAD_DEBUG_EVENT: u32 = 4;
pub const EXIT_PROCESS_DEBUG_EVENT: u32 = 5;
pub const LOAD_DLL_DEBUG_EVENT: u32 = 6;
pub const UNLOAD_DLL_DEBUG_EVENT: u32 = 7;
pub const OUTPUT_DEBUG_STRING_EVENT: u32 = 8;
pub const RIP_EVENT: u32 = 9;
pub const LMEM_FIXED: u32 = 0;
pub const LMEM_MOVEABLE: u32 = 2;
pub const LMEM_NOCOMPACT: u32 = 16;
pub const LMEM_NODISCARD: u32 = 32;
pub const LMEM_ZEROINIT: u32 = 64;
pub const LMEM_MODIFY: u32 = 128;
pub const LMEM_DISCARDABLE: u32 = 3840;
pub const LMEM_VALID_FLAGS: u32 = 3954;
pub const LMEM_INVALID_HANDLE: u32 = 32768;
pub const LHND: u32 = 66;
pub const LPTR: u32 = 64;
pub const NONZEROLHND: u32 = 2;
pub const NONZEROLPTR: u32 = 0;
pub const LMEM_DISCARDED: u32 = 16384;
pub const LMEM_LOCKCOUNT: u32 = 255;
pub const CREATE_NEW: u32 = 1;
pub const CREATE_ALWAYS: u32 = 2;
pub const OPEN_EXISTING: u32 = 3;
pub const OPEN_ALWAYS: u32 = 4;
pub const TRUNCATE_EXISTING: u32 = 5;
pub const FIND_RESOURCE_DIRECTORY_TYPES: u32 = 256;
pub const FIND_RESOURCE_DIRECTORY_NAMES: u32 = 512;
pub const FIND_RESOURCE_DIRECTORY_LANGUAGES: u32 = 1024;
pub const RESOURCE_ENUM_LN: u32 = 1;
pub const RESOURCE_ENUM_MUI: u32 = 2;
pub const RESOURCE_ENUM_MUI_SYSTEM: u32 = 4;
pub const RESOURCE_ENUM_VALIDATE: u32 = 8;
pub const RESOURCE_ENUM_MODULE_EXACT: u32 = 16;
pub const SUPPORT_LANG_NUMBER: u32 = 32;
pub const DONT_RESOLVE_DLL_REFERENCES: u32 = 1;
pub const LOAD_LIBRARY_AS_DATAFILE: u32 = 2;
pub const LOAD_WITH_ALTERED_SEARCH_PATH: u32 = 8;
pub const LOAD_IGNORE_CODE_AUTHZ_LEVEL: u32 = 16;
pub const LOAD_LIBRARY_AS_IMAGE_RESOURCE: u32 = 32;
pub const LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE: u32 = 64;
pub const LOAD_LIBRARY_REQUIRE_SIGNED_TARGET: u32 = 128;
pub const LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR: u32 = 256;
pub const LOAD_LIBRARY_SEARCH_APPLICATION_DIR: u32 = 512;
pub const LOAD_LIBRARY_SEARCH_USER_DIRS: u32 = 1024;
pub const LOAD_LIBRARY_SEARCH_SYSTEM32: u32 = 2048;
pub const LOAD_LIBRARY_SEARCH_DEFAULT_DIRS: u32 = 4096;
pub const LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER: u32 = 2048;
pub const GET_MODULE_HANDLE_EX_FLAG_PIN: u32 = 1;
pub const GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT: u32 = 2;
pub const GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS: u32 = 4;
pub const CURRENT_IMPORT_REDIRECTION_VERSION: u32 = 1;
pub const FILE_MAP_WRITE: u32 = 2;
pub const FILE_MAP_READ: u32 = 4;
pub const FILE_MAP_COPY: u32 = 1;
pub const FILE_MAP_RESERVE: u32 = 2147483648;
pub const FILE_MAP_EXECUTE: u32 = 32;
pub const FILE_CACHE_MAX_HARD_ENABLE: u32 = 1;
pub const FILE_CACHE_MAX_HARD_DISABLE: u32 = 2;
pub const FILE_CACHE_MIN_HARD_ENABLE: u32 = 4;
pub const FILE_CACHE_MIN_HARD_DISABLE: u32 = 8;
pub const PRIVATE_NAMESPACE_FLAG_DESTROY: u32 = 1;
pub const MEMORY_PRIORITY_VERY_LOW: u32 = 1;
pub const MEMORY_PRIORITY_LOW: u32 = 2;
pub const MEMORY_PRIORITY_MEDIUM: u32 = 3;
pub const MEMORY_PRIORITY_BELOW_NORMAL: u32 = 4;
pub const MEMORY_PRIORITY_NORMAL: u32 = 5;
pub const INIT_ONCE_CTX_RESERVED_BITS: u32 = 2;
pub const CONDITION_VARIABLE_LOCKMODE_SHARED: u32 = 1;
pub const MUTEX_MODIFY_STATE: u32 = 1;
pub const SYNCHRONIZATION_BARRIER_FLAGS_SPIN_ONLY: u32 = 1;
pub const SYNCHRONIZATION_BARRIER_FLAGS_BLOCK_ONLY: u32 = 2;
pub const SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE: u32 = 4;
pub const FILE_BEGIN: u32 = 0;
pub const FILE_CURRENT: u32 = 1;
pub const FILE_END: u32 = 2;
pub const FILE_FLAG_WRITE_THROUGH: u32 = 2147483648;
pub const FILE_FLAG_OVERLAPPED: u32 = 1073741824;
pub const FILE_FLAG_NO_BUFFERING: u32 = 536870912;
pub const FILE_FLAG_RANDOM_ACCESS: u32 = 268435456;
pub const FILE_FLAG_SEQUENTIAL_SCAN: u32 = 134217728;
pub const FILE_FLAG_DELETE_ON_CLOSE: u32 = 67108864;
pub const FILE_FLAG_BACKUP_SEMANTICS: u32 = 33554432;
pub const FILE_FLAG_POSIX_SEMANTICS: u32 = 16777216;
pub const FILE_FLAG_SESSION_AWARE: u32 = 8388608;
pub const FILE_FLAG_OPEN_REPARSE_POINT: u32 = 2097152;
pub const FILE_FLAG_OPEN_NO_RECALL: u32 = 1048576;
pub const FILE_FLAG_FIRST_PIPE_INSTANCE: u32 = 524288;
pub const PROGRESS_CONTINUE: u32 = 0;
pub const PROGRESS_CANCEL: u32 = 1;
pub const PROGRESS_STOP: u32 = 2;
pub const PROGRESS_QUIET: u32 = 3;
pub const CALLBACK_CHUNK_FINISHED: u32 = 0;
pub const CALLBACK_STREAM_SWITCH: u32 = 1;
pub const COPY_FILE_FAIL_IF_EXISTS: u32 = 1;
pub const COPY_FILE_RESTARTABLE: u32 = 2;
pub const COPY_FILE_OPEN_SOURCE_FOR_WRITE: u32 = 4;
pub const COPY_FILE_ALLOW_DECRYPTED_DESTINATION: u32 = 8;
pub const REPLACEFILE_WRITE_THROUGH: u32 = 1;
pub const REPLACEFILE_IGNORE_MERGE_ERRORS: u32 = 2;
pub const PIPE_ACCESS_INBOUND: u32 = 1;
pub const PIPE_ACCESS_OUTBOUND: u32 = 2;
pub const PIPE_ACCESS_DUPLEX: u32 = 3;
pub const PIPE_CLIENT_END: u32 = 0;
pub const PIPE_SERVER_END: u32 = 1;
pub const PIPE_WAIT: u32 = 0;
pub const PIPE_NOWAIT: u32 = 1;
pub const PIPE_READMODE_BYTE: u32 = 0;
pub const PIPE_READMODE_MESSAGE: u32 = 2;
pub const PIPE_TYPE_BYTE: u32 = 0;
pub const PIPE_TYPE_MESSAGE: u32 = 4;
pub const PIPE_ACCEPT_REMOTE_CLIENTS: u32 = 0;
pub const PIPE_REJECT_REMOTE_CLIENTS: u32 = 8;
pub const PIPE_UNLIMITED_INSTANCES: u32 = 255;
pub const SECURITY_CONTEXT_TRACKING: u32 = 262144;
pub const SECURITY_EFFECTIVE_ONLY: u32 = 524288;
pub const SECURITY_SQOS_PRESENT: u32 = 1048576;
pub const SECURITY_VALID_SQOS_FLAGS: u32 = 2031616;
pub const FAIL_FAST_GENERATE_EXCEPTION_ADDRESS: u32 = 1;
pub const FAIL_FAST_NO_HARD_ERROR_DLG: u32 = 2;
pub const DTR_CONTROL_DISABLE: u32 = 0;
pub const DTR_CONTROL_ENABLE: u32 = 1;
pub const DTR_CONTROL_HANDSHAKE: u32 = 2;
pub const RTS_CONTROL_DISABLE: u32 = 0;
pub const RTS_CONTROL_ENABLE: u32 = 1;
pub const RTS_CONTROL_HANDSHAKE: u32 = 2;
pub const RTS_CONTROL_TOGGLE: u32 = 3;
pub const GMEM_FIXED: u32 = 0;
pub const GMEM_MOVEABLE: u32 = 2;
pub const GMEM_NOCOMPACT: u32 = 16;
pub const GMEM_NODISCARD: u32 = 32;
pub const GMEM_ZEROINIT: u32 = 64;
pub const GMEM_MODIFY: u32 = 128;
pub const GMEM_DISCARDABLE: u32 = 256;
pub const GMEM_NOT_BANKED: u32 = 4096;
pub const GMEM_SHARE: u32 = 8192;
pub const GMEM_DDESHARE: u32 = 8192;
pub const GMEM_NOTIFY: u32 = 16384;
pub const GMEM_LOWER: u32 = 4096;
pub const GMEM_VALID_FLAGS: u32 = 32626;
pub const GMEM_INVALID_HANDLE: u32 = 32768;
pub const GHND: u32 = 66;
pub const GPTR: u32 = 64;
pub const GMEM_DISCARDED: u32 = 16384;
pub const GMEM_LOCKCOUNT: u32 = 255;
pub const DEBUG_PROCESS: u32 = 1;
pub const DEBUG_ONLY_THIS_PROCESS: u32 = 2;
pub const CREATE_SUSPENDED: u32 = 4;
pub const DETACHED_PROCESS: u32 = 8;
pub const CREATE_NEW_CONSOLE: u32 = 16;
pub const NORMAL_PRIORITY_CLASS: u32 = 32;
pub const IDLE_PRIORITY_CLASS: u32 = 64;
pub const HIGH_PRIORITY_CLASS: u32 = 128;
pub const REALTIME_PRIORITY_CLASS: u32 = 256;
pub const CREATE_NEW_PROCESS_GROUP: u32 = 512;
pub const CREATE_UNICODE_ENVIRONMENT: u32 = 1024;
pub const CREATE_SEPARATE_WOW_VDM: u32 = 2048;
pub const CREATE_SHARED_WOW_VDM: u32 = 4096;
pub const CREATE_FORCEDOS: u32 = 8192;
pub const BELOW_NORMAL_PRIORITY_CLASS: u32 = 16384;
pub const ABOVE_NORMAL_PRIORITY_CLASS: u32 = 32768;
pub const INHERIT_PARENT_AFFINITY: u32 = 65536;
pub const INHERIT_CALLER_PRIORITY: u32 = 131072;
pub const CREATE_PROTECTED_PROCESS: u32 = 262144;
pub const EXTENDED_STARTUPINFO_PRESENT: u32 = 524288;
pub const PROCESS_MODE_BACKGROUND_BEGIN: u32 = 1048576;
pub const PROCESS_MODE_BACKGROUND_END: u32 = 2097152;
pub const CREATE_BREAKAWAY_FROM_JOB: u32 = 16777216;
pub const CREATE_PRESERVE_CODE_AUTHZ_LEVEL: u32 = 33554432;
pub const CREATE_DEFAULT_ERROR_MODE: u32 = 67108864;
pub const CREATE_NO_WINDOW: u32 = 134217728;
pub const PROFILE_USER: u32 = 268435456;
pub const PROFILE_KERNEL: u32 = 536870912;
pub const PROFILE_SERVER: u32 = 1073741824;
pub const CREATE_IGNORE_SYSTEM_DEFAULT: u32 = 2147483648;
pub const STACK_SIZE_PARAM_IS_A_RESERVATION: u32 = 65536;
pub const THREAD_PRIORITY_LOWEST: i32 = -2;
pub const THREAD_PRIORITY_BELOW_NORMAL: i32 = -1;
pub const THREAD_PRIORITY_NORMAL: u32 = 0;
pub const THREAD_PRIORITY_HIGHEST: u32 = 2;
pub const THREAD_PRIORITY_ABOVE_NORMAL: u32 = 1;
pub const THREAD_PRIORITY_ERROR_RETURN: u32 = 2147483647;
pub const THREAD_PRIORITY_TIME_CRITICAL: u32 = 15;
pub const THREAD_PRIORITY_IDLE: i32 = -15;
pub const THREAD_MODE_BACKGROUND_BEGIN: u32 = 65536;
pub const THREAD_MODE_BACKGROUND_END: u32 = 131072;
pub const VOLUME_NAME_DOS: u32 = 0;
pub const VOLUME_NAME_GUID: u32 = 1;
pub const VOLUME_NAME_NT: u32 = 2;
pub const VOLUME_NAME_NONE: u32 = 4;
pub const FILE_NAME_NORMALIZED: u32 = 0;
pub const FILE_NAME_OPENED: u32 = 8;
pub const DRIVE_UNKNOWN: u32 = 0;
pub const DRIVE_NO_ROOT_DIR: u32 = 1;
pub const DRIVE_REMOVABLE: u32 = 2;
pub const DRIVE_FIXED: u32 = 3;
pub const DRIVE_REMOTE: u32 = 4;
pub const DRIVE_CDROM: u32 = 5;
pub const DRIVE_RAMDISK: u32 = 6;
pub const FILE_TYPE_UNKNOWN: u32 = 0;
pub const FILE_TYPE_DISK: u32 = 1;
pub const FILE_TYPE_CHAR: u32 = 2;
pub const FILE_TYPE_PIPE: u32 = 3;
pub const FILE_TYPE_REMOTE: u32 = 32768;
pub const NOPARITY: u32 = 0;
pub const ODDPARITY: u32 = 1;
pub const EVENPARITY: u32 = 2;
pub const MARKPARITY: u32 = 3;
pub const SPACEPARITY: u32 = 4;
pub const ONESTOPBIT: u32 = 0;
pub const ONE5STOPBITS: u32 = 1;
pub const TWOSTOPBITS: u32 = 2;
pub const IGNORE: u32 = 0;
pub const INFINITE: u32 = 4294967295;
pub const CBR_110: u32 = 110;
pub const CBR_300: u32 = 300;
pub const CBR_600: u32 = 600;
pub const CBR_1200: u32 = 1200;
pub const CBR_2400: u32 = 2400;
pub const CBR_4800: u32 = 4800;
pub const CBR_9600: u32 = 9600;
pub const CBR_14400: u32 = 14400;
pub const CBR_19200: u32 = 19200;
pub const CBR_38400: u32 = 38400;
pub const CBR_56000: u32 = 56000;
pub const CBR_57600: u32 = 57600;
pub const CBR_115200: u32 = 115200;
pub const CBR_128000: u32 = 128000;
pub const CBR_256000: u32 = 256000;
pub const CE_RXOVER: u32 = 1;
pub const CE_OVERRUN: u32 = 2;
pub const CE_RXPARITY: u32 = 4;
pub const CE_FRAME: u32 = 8;
pub const CE_BREAK: u32 = 16;
pub const CE_TXFULL: u32 = 256;
pub const CE_PTO: u32 = 512;
pub const CE_IOE: u32 = 1024;
pub const CE_DNS: u32 = 2048;
pub const CE_OOP: u32 = 4096;
pub const CE_MODE: u32 = 32768;
pub const IE_BADID: i32 = -1;
pub const IE_OPEN: i32 = -2;
pub const IE_NOPEN: i32 = -3;
pub const IE_MEMORY: i32 = -4;
pub const IE_DEFAULT: i32 = -5;
pub const IE_HARDWARE: i32 = -10;
pub const IE_BYTESIZE: i32 = -11;
pub const IE_BAUDRATE: i32 = -12;
pub const EV_RXCHAR: u32 = 1;
pub const EV_RXFLAG: u32 = 2;
pub const EV_TXEMPTY: u32 = 4;
pub const EV_CTS: u32 = 8;
pub const EV_DSR: u32 = 16;
pub const EV_RLSD: u32 = 32;
pub const EV_BREAK: u32 = 64;
pub const EV_ERR: u32 = 128;
pub const EV_RING: u32 = 256;
pub const EV_PERR: u32 = 512;
pub const EV_RX80FULL: u32 = 1024;
pub const EV_EVENT1: u32 = 2048;
pub const EV_EVENT2: u32 = 4096;
pub const SETXOFF: u32 = 1;
pub const SETXON: u32 = 2;
pub const SETRTS: u32 = 3;
pub const CLRRTS: u32 = 4;
pub const SETDTR: u32 = 5;
pub const CLRDTR: u32 = 6;
pub const RESETDEV: u32 = 7;
pub const SETBREAK: u32 = 8;
pub const CLRBREAK: u32 = 9;
pub const PURGE_TXABORT: u32 = 1;
pub const PURGE_RXABORT: u32 = 2;
pub const PURGE_TXCLEAR: u32 = 4;
pub const PURGE_RXCLEAR: u32 = 8;
pub const LPTx: u32 = 128;
pub const S_QUEUEEMPTY: u32 = 0;
pub const S_THRESHOLD: u32 = 1;
pub const S_ALLTHRESHOLD: u32 = 2;
pub const S_NORMAL: u32 = 0;
pub const S_LEGATO: u32 = 1;
pub const S_STACCATO: u32 = 2;
pub const S_PERIOD512: u32 = 0;
pub const S_PERIOD1024: u32 = 1;
pub const S_PERIOD2048: u32 = 2;
pub const S_PERIODVOICE: u32 = 3;
pub const S_WHITE512: u32 = 4;
pub const S_WHITE1024: u32 = 5;
pub const S_WHITE2048: u32 = 6;
pub const S_WHITEVOICE: u32 = 7;
pub const S_SERDVNA: i32 = -1;
pub const S_SEROFM: i32 = -2;
pub const S_SERMACT: i32 = -3;
pub const S_SERQFUL: i32 = -4;
pub const S_SERBDNT: i32 = -5;
pub const S_SERDLN: i32 = -6;
pub const S_SERDCC: i32 = -7;
pub const S_SERDTP: i32 = -8;
pub const S_SERDVL: i32 = -9;
pub const S_SERDMD: i32 = -10;
pub const S_SERDSH: i32 = -11;
pub const S_SERDPT: i32 = -12;
pub const S_SERDFQ: i32 = -13;
pub const S_SERDDR: i32 = -14;
pub const S_SERDSR: i32 = -15;
pub const S_SERDST: i32 = -16;
pub const NMPWAIT_WAIT_FOREVER: u32 = 4294967295;
pub const NMPWAIT_NOWAIT: u32 = 1;
pub const NMPWAIT_USE_DEFAULT_WAIT: u32 = 0;
pub const FS_CASE_IS_PRESERVED: u32 = 2;
pub const FS_CASE_SENSITIVE: u32 = 1;
pub const FS_UNICODE_STORED_ON_DISK: u32 = 4;
pub const FS_PERSISTENT_ACLS: u32 = 8;
pub const FS_VOL_IS_COMPRESSED: u32 = 32768;
pub const FS_FILE_COMPRESSION: u32 = 16;
pub const FS_FILE_ENCRYPTION: u32 = 131072;
pub const OF_READ: u32 = 0;
pub const OF_WRITE: u32 = 1;
pub const OF_READWRITE: u32 = 2;
pub const OF_SHARE_COMPAT: u32 = 0;
pub const OF_SHARE_EXCLUSIVE: u32 = 16;
pub const OF_SHARE_DENY_WRITE: u32 = 32;
pub const OF_SHARE_DENY_READ: u32 = 48;
pub const OF_SHARE_DENY_NONE: u32 = 64;
pub const OF_PARSE: u32 = 256;
pub const OF_DELETE: u32 = 512;
pub const OF_VERIFY: u32 = 1024;
pub const OF_CANCEL: u32 = 2048;
pub const OF_CREATE: u32 = 4096;
pub const OF_PROMPT: u32 = 8192;
pub const OF_EXIST: u32 = 16384;
pub const OF_REOPEN: u32 = 32768;
pub const OFS_MAXPATHNAME: u32 = 128;
pub const MAXINTATOM: u32 = 49152;
pub const SCS_32BIT_BINARY: u32 = 0;
pub const SCS_DOS_BINARY: u32 = 1;
pub const SCS_WOW_BINARY: u32 = 2;
pub const SCS_PIF_BINARY: u32 = 3;
pub const SCS_POSIX_BINARY: u32 = 4;
pub const SCS_OS216_BINARY: u32 = 5;
pub const SCS_64BIT_BINARY: u32 = 6;
pub const SCS_THIS_PLATFORM_BINARY: u32 = 6;
pub const FIBER_FLAG_FLOAT_SWITCH: u32 = 1;
pub const SEM_FAILCRITICALERRORS: u32 = 1;
pub const SEM_NOGPFAULTERRORBOX: u32 = 2;
pub const SEM_NOALIGNMENTFAULTEXCEPT: u32 = 4;
pub const SEM_NOOPENFILEERRORBOX: u32 = 32768;
pub const CRITICAL_SECTION_NO_DEBUG_INFO: u32 = 16777216;
pub const HANDLE_FLAG_INHERIT: u32 = 1;
pub const HANDLE_FLAG_PROTECT_FROM_CLOSE: u32 = 2;
pub const HINSTANCE_ERROR: u32 = 32;
pub const GET_TAPE_MEDIA_INFORMATION: u32 = 0;
pub const GET_TAPE_DRIVE_INFORMATION: u32 = 1;
pub const SET_TAPE_MEDIA_INFORMATION: u32 = 0;
pub const SET_TAPE_DRIVE_INFORMATION: u32 = 1;
pub const FORMAT_MESSAGE_IGNORE_INSERTS: u32 = 512;
pub const FORMAT_MESSAGE_FROM_STRING: u32 = 1024;
pub const FORMAT_MESSAGE_FROM_HMODULE: u32 = 2048;
pub const FORMAT_MESSAGE_FROM_SYSTEM: u32 = 4096;
pub const FORMAT_MESSAGE_ARGUMENT_ARRAY: u32 = 8192;
pub const FORMAT_MESSAGE_MAX_WIDTH_MASK: u32 = 255;
pub const FILE_ENCRYPTABLE: u32 = 0;
pub const FILE_IS_ENCRYPTED: u32 = 1;
pub const FILE_SYSTEM_ATTR: u32 = 2;
pub const FILE_ROOT_DIR: u32 = 3;
pub const FILE_SYSTEM_DIR: u32 = 4;
pub const FILE_UNKNOWN: u32 = 5;
pub const FILE_SYSTEM_NOT_SUPPORT: u32 = 6;
pub const FILE_USER_DISALLOWED: u32 = 7;
pub const FILE_READ_ONLY: u32 = 8;
pub const FILE_DIR_DISALLOWED: u32 = 9;
pub const FORMAT_MESSAGE_ALLOCATE_BUFFER: u32 = 256;
pub const EFS_USE_RECOVERY_KEYS: u32 = 1;
pub const CREATE_FOR_IMPORT: u32 = 1;
pub const CREATE_FOR_DIR: u32 = 2;
pub const OVERWRITE_HIDDEN: u32 = 4;
pub const EFSRPC_SECURE_ONLY: u32 = 8;
pub const BACKUP_INVALID: u32 = 0;
pub const BACKUP_DATA: u32 = 1;
pub const BACKUP_EA_DATA: u32 = 2;
pub const BACKUP_SECURITY_DATA: u32 = 3;
pub const BACKUP_ALTERNATE_DATA: u32 = 4;
pub const BACKUP_LINK: u32 = 5;
pub const BACKUP_PROPERTY_DATA: u32 = 6;
pub const BACKUP_OBJECT_ID: u32 = 7;
pub const BACKUP_REPARSE_DATA: u32 = 8;
pub const BACKUP_SPARSE_BLOCK: u32 = 9;
pub const BACKUP_TXFS_DATA: u32 = 10;
pub const STREAM_NORMAL_ATTRIBUTE: u32 = 0;
pub const STREAM_MODIFIED_WHEN_READ: u32 = 1;
pub const STREAM_CONTAINS_SECURITY: u32 = 2;
pub const STREAM_CONTAINS_PROPERTIES: u32 = 4;
pub const STREAM_SPARSE_ATTRIBUTE: u32 = 8;
pub const STARTF_USESHOWWINDOW: u32 = 1;
pub const STARTF_USESIZE: u32 = 2;
pub const STARTF_USEPOSITION: u32 = 4;
pub const STARTF_USECOUNTCHARS: u32 = 8;
pub const STARTF_USEFILLATTRIBUTE: u32 = 16;
pub const STARTF_RUNFULLSCREEN: u32 = 32;
pub const STARTF_FORCEONFEEDBACK: u32 = 64;
pub const STARTF_FORCEOFFFEEDBACK: u32 = 128;
pub const STARTF_USESTDHANDLES: u32 = 256;
pub const STARTF_USEHOTKEY: u32 = 512;
pub const STARTF_TITLEISLINKNAME: u32 = 2048;
pub const STARTF_TITLEISAPPID: u32 = 4096;
pub const STARTF_PREVENTPINNING: u32 = 8192;
pub const SHUTDOWN_NORETRY: u32 = 1;
pub const ATOM_FLAG_GLOBAL: u32 = 2;
pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A: &'static [u8; 25usize] =
    b"GetSystemWow64DirectoryA\0";
pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W: &'static [u8; 25usize] =
    b"GetSystemWow64DirectoryA\0";
pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A: &'static [u8; 25usize] =
    b"GetSystemWow64DirectoryW\0";
pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W: &'static [u8; 25usize] =
    b"GetSystemWow64DirectoryW\0";
pub const BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE: u32 = 1;
pub const BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE: u32 = 65536;
pub const BASE_SEARCH_PATH_PERMANENT: u32 = 32768;
pub const BASE_SEARCH_PATH_INVALID_FLAGS: i32 = -98306;
pub const DDD_RAW_TARGET_PATH: u32 = 1;
pub const DDD_REMOVE_DEFINITION: u32 = 2;
pub const DDD_EXACT_MATCH_ON_REMOVE: u32 = 4;
pub const DDD_NO_BROADCAST_SYSTEM: u32 = 8;
pub const DDD_LUID_BROADCAST_DRIVE: u32 = 16;
pub const MOVEFILE_REPLACE_EXISTING: u32 = 1;
pub const MOVEFILE_COPY_ALLOWED: u32 = 2;
pub const MOVEFILE_DELAY_UNTIL_REBOOT: u32 = 4;
pub const MOVEFILE_WRITE_THROUGH: u32 = 8;
pub const MOVEFILE_CREATE_HARDLINK: u32 = 16;
pub const MOVEFILE_FAIL_IF_NOT_TRACKABLE: u32 = 32;
pub const EVENTLOG_FULL_INFO: u32 = 0;
pub const MAX_COMPUTERNAME_LENGTH: u32 = 15;
pub const LOGON32_LOGON_INTERACTIVE: u32 = 2;
pub const LOGON32_LOGON_NETWORK: u32 = 3;
pub const LOGON32_LOGON_BATCH: u32 = 4;
pub const LOGON32_LOGON_SERVICE: u32 = 5;
pub const LOGON32_LOGON_UNLOCK: u32 = 7;
pub const LOGON32_LOGON_NETWORK_CLEARTEXT: u32 = 8;
pub const LOGON32_LOGON_NEW_CREDENTIALS: u32 = 9;
pub const LOGON32_PROVIDER_DEFAULT: u32 = 0;
pub const LOGON32_PROVIDER_WINNT35: u32 = 1;
pub const LOGON32_PROVIDER_WINNT40: u32 = 2;
pub const LOGON32_PROVIDER_WINNT50: u32 = 3;
pub const LOGON_WITH_PROFILE: u32 = 1;
pub const LOGON_NETCREDENTIALS_ONLY: u32 = 2;
pub const LOGON_ZERO_PASSWORD_BUFFER: u32 = 2147483648;
pub const HW_PROFILE_GUIDLEN: u32 = 39;
pub const MAX_PROFILE_LEN: u32 = 80;
pub const DOCKINFO_UNDOCKED: u32 = 1;
pub const DOCKINFO_DOCKED: u32 = 2;
pub const DOCKINFO_USER_SUPPLIED: u32 = 4;
pub const DOCKINFO_USER_UNDOCKED: u32 = 5;
pub const DOCKINFO_USER_DOCKED: u32 = 6;
pub const __IN__WINERROR_: u32 = 1;
pub const FACILITY_WINDOWSUPDATE: u32 = 36;
pub const FACILITY_WINDOWS_CE: u32 = 24;
pub const FACILITY_WINDOWS: u32 = 8;
pub const FACILITY_URT: u32 = 19;
pub const FACILITY_UMI: u32 = 22;
pub const FACILITY_SXS: u32 = 23;
pub const FACILITY_STORAGE: u32 = 3;
pub const FACILITY_STATE_MANAGEMENT: u32 = 34;
pub const FACILITY_SSPI: u32 = 9;
pub const FACILITY_SCARD: u32 = 16;
pub const FACILITY_SETUPAPI: u32 = 15;
pub const FACILITY_SECURITY: u32 = 9;
pub const FACILITY_RPC: u32 = 1;
pub const FACILITY_WIN32: u32 = 7;
pub const FACILITY_CONTROL: u32 = 10;
pub const FACILITY_NULL: u32 = 0;
pub const FACILITY_METADIRECTORY: u32 = 35;
pub const FACILITY_MSMQ: u32 = 14;
pub const FACILITY_MEDIASERVER: u32 = 13;
pub const FACILITY_INTERNET: u32 = 12;
pub const FACILITY_ITF: u32 = 4;
pub const FACILITY_HTTP: u32 = 25;
pub const FACILITY_DPLAY: u32 = 21;
pub const FACILITY_DISPATCH: u32 = 2;
pub const FACILITY_DIRECTORYSERVICE: u32 = 37;
pub const FACILITY_CONFIGURATION: u32 = 33;
pub const FACILITY_COMPLUS: u32 = 17;
pub const FACILITY_CERT: u32 = 11;
pub const FACILITY_BACKGROUNDCOPY: u32 = 32;
pub const FACILITY_ACS: u32 = 20;
pub const FACILITY_AAF: u32 = 18;
pub const FACILITY_AUDCLNT: u32 = 2185;
pub const DNS_ERROR_RESPONSE_CODES_BASE: u32 = 9000;
pub const DNS_ERROR_MASK: u32 = 9000;
pub const DNS_ERROR_PACKET_FMT_BASE: u32 = 9500;
pub const DNS_ERROR_GENERAL_API_BASE: u32 = 9550;
pub const DNS_ERROR_ZONE_BASE: u32 = 9600;
pub const DNS_ERROR_DATAFILE_BASE: u32 = 9650;
pub const DNS_ERROR_DATABASE_BASE: u32 = 9700;
pub const DNS_ERROR_OPERATION_BASE: u32 = 9750;
pub const DNS_ERROR_SECURE_BASE: u32 = 9800;
pub const DNS_ERROR_SETUP_BASE: u32 = 9850;
pub const DNS_ERROR_DP_BASE: u32 = 9900;
pub const WSABASEERR: u32 = 10000;
pub const WSAEINTR: u32 = 10004;
pub const WSAEBADF: u32 = 10009;
pub const WSAEACCES: u32 = 10013;
pub const WSAEFAULT: u32 = 10014;
pub const WSAEINVAL: u32 = 10022;
pub const WSAEMFILE: u32 = 10024;
pub const WSAEWOULDBLOCK: u32 = 10035;
pub const WSAEINPROGRESS: u32 = 10036;
pub const WSAEALREADY: u32 = 10037;
pub const WSAENOTSOCK: u32 = 10038;
pub const WSAEDESTADDRREQ: u32 = 10039;
pub const WSAEMSGSIZE: u32 = 10040;
pub const WSAEPROTOTYPE: u32 = 10041;
pub const WSAENOPROTOOPT: u32 = 10042;
pub const WSAEPROTONOSUPPORT: u32 = 10043;
pub const WSAESOCKTNOSUPPORT: u32 = 10044;
pub const WSAEOPNOTSUPP: u32 = 10045;
pub const WSAEPFNOSUPPORT: u32 = 10046;
pub const WSAEAFNOSUPPORT: u32 = 10047;
pub const WSAEADDRINUSE: u32 = 10048;
pub const WSAEADDRNOTAVAIL: u32 = 10049;
pub const WSAENETDOWN: u32 = 10050;
pub const WSAENETUNREACH: u32 = 10051;
pub const WSAENETRESET: u32 = 10052;
pub const WSAECONNABORTED: u32 = 10053;
pub const WSAECONNRESET: u32 = 10054;
pub const WSAENOBUFS: u32 = 10055;
pub const WSAEISCONN: u32 = 10056;
pub const WSAENOTCONN: u32 = 10057;
pub const WSAESHUTDOWN: u32 = 10058;
pub const WSAETOOMANYREFS: u32 = 10059;
pub const WSAETIMEDOUT: u32 = 10060;
pub const WSAECONNREFUSED: u32 = 10061;
pub const WSAELOOP: u32 = 10062;
pub const WSAENAMETOOLONG: u32 = 10063;
pub const WSAEHOSTDOWN: u32 = 10064;
pub const WSAEHOSTUNREACH: u32 = 10065;
pub const WSAENOTEMPTY: u32 = 10066;
pub const WSAEPROCLIM: u32 = 10067;
pub const WSAEUSERS: u32 = 10068;
pub const WSAEDQUOT: u32 = 10069;
pub const WSAESTALE: u32 = 10070;
pub const WSAEREMOTE: u32 = 10071;
pub const WSASYSNOTREADY: u32 = 10091;
pub const WSAVERNOTSUPPORTED: u32 = 10092;
pub const WSANOTINITIALISED: u32 = 10093;
pub const WSAEDISCON: u32 = 10101;
pub const WSAENOMORE: u32 = 10102;
pub const WSAECANCELLED: u32 = 10103;
pub const WSAEINVALIDPROCTABLE: u32 = 10104;
pub const WSAEINVALIDPROVIDER: u32 = 10105;
pub const WSAEPROVIDERFAILEDINIT: u32 = 10106;
pub const WSASYSCALLFAILURE: u32 = 10107;
pub const WSASERVICE_NOT_FOUND: u32 = 10108;
pub const WSATYPE_NOT_FOUND: u32 = 10109;
pub const WSA_E_NO_MORE: u32 = 10110;
pub const WSA_E_CANCELLED: u32 = 10111;
pub const WSAEREFUSED: u32 = 10112;
pub const WSAHOST_NOT_FOUND: u32 = 11001;
pub const WSATRY_AGAIN: u32 = 11002;
pub const WSANO_RECOVERY: u32 = 11003;
pub const WSANO_DATA: u32 = 11004;
pub const WSA_QOS_RECEIVERS: u32 = 11005;
pub const WSA_QOS_SENDERS: u32 = 11006;
pub const WSA_QOS_NO_SENDERS: u32 = 11007;
pub const WSA_QOS_NO_RECEIVERS: u32 = 11008;
pub const WSA_QOS_REQUEST_CONFIRMED: u32 = 11009;
pub const WSA_QOS_ADMISSION_FAILURE: u32 = 11010;
pub const WSA_QOS_POLICY_FAILURE: u32 = 11011;
pub const WSA_QOS_BAD_STYLE: u32 = 11012;
pub const WSA_QOS_BAD_OBJECT: u32 = 11013;
pub const WSA_QOS_TRAFFIC_CTRL_ERROR: u32 = 11014;
pub const WSA_QOS_GENERIC_ERROR: u32 = 11015;
pub const WSA_QOS_ESERVICETYPE: u32 = 11016;
pub const WSA_QOS_EFLOWSPEC: u32 = 11017;
pub const WSA_QOS_EPROVSPECBUF: u32 = 11018;
pub const WSA_QOS_EFILTERSTYLE: u32 = 11019;
pub const WSA_QOS_EFILTERTYPE: u32 = 11020;
pub const WSA_QOS_EFILTERCOUNT: u32 = 11021;
pub const WSA_QOS_EOBJLENGTH: u32 = 11022;
pub const WSA_QOS_EFLOWCOUNT: u32 = 11023;
pub const WSA_QOS_EUNKNOWNPSOBJ: u32 = 11024;
pub const WSA_QOS_EUNKOWNPSOBJ: u32 = 11024;
pub const WSA_QOS_EPOLICYOBJ: u32 = 11025;
pub const WSA_QOS_EFLOWDESC: u32 = 11026;
pub const WSA_QOS_EPSFLOWSPEC: u32 = 11027;
pub const WSA_QOS_EPSFILTERSPEC: u32 = 11028;
pub const WSA_QOS_ESDMODEOBJ: u32 = 11029;
pub const WSA_QOS_ESHAPERATEOBJ: u32 = 11030;
pub const WSA_QOS_RESERVED_PETYPE: u32 = 11031;
pub const SEVERITY_SUCCESS: u32 = 0;
pub const SEVERITY_ERROR: u32 = 1;
pub const FACILITY_NT_BIT: u32 = 268435456;
pub const NOERROR: u32 = 0;
pub const XACT_E_FIRST: u32 = 2147799040;
pub const XACT_E_LAST: u32 = 2147799081;
pub const XACT_S_FIRST: u32 = 315392;
pub const XACT_S_LAST: u32 = 315408;
pub const NTE_OP_OK: u32 = 0;
pub const FACILITY_USERMODE_FILTER_MANAGER: u32 = 31;
pub const TC_NORMAL: u32 = 0;
pub const TC_HARDERR: u32 = 1;
pub const TC_GP_TRAP: u32 = 2;
pub const TC_SIGNAL: u32 = 3;
pub const AC_LINE_OFFLINE: u32 = 0;
pub const AC_LINE_ONLINE: u32 = 1;
pub const AC_LINE_BACKUP_POWER: u32 = 2;
pub const AC_LINE_UNKNOWN: u32 = 255;
pub const BATTERY_FLAG_HIGH: u32 = 1;
pub const BATTERY_FLAG_LOW: u32 = 2;
pub const BATTERY_FLAG_CRITICAL: u32 = 4;
pub const BATTERY_FLAG_CHARGING: u32 = 8;
pub const BATTERY_FLAG_NO_BATTERY: u32 = 128;
pub const BATTERY_FLAG_UNKNOWN: u32 = 255;
pub const BATTERY_PERCENTAGE_UNKNOWN: u32 = 255;
pub const BATTERY_LIFE_UNKNOWN: u32 = 4294967295;
pub const ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID: u32 = 1;
pub const ACTCTX_FLAG_LANGID_VALID: u32 = 2;
pub const ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID: u32 = 4;
pub const ACTCTX_FLAG_RESOURCE_NAME_VALID: u32 = 8;
pub const ACTCTX_FLAG_SET_PROCESS_DEFAULT: u32 = 16;
pub const ACTCTX_FLAG_APPLICATION_NAME_VALID: u32 = 32;
pub const ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF: u32 = 64;
pub const ACTCTX_FLAG_HMODULE_VALID: u32 = 128;
pub const DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION: u32 = 1;
pub const FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX: u32 = 1;
pub const FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS: u32 = 2;
pub const FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA: u32 = 4;
pub const ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED: u32 = 1;
pub const QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX: u32 = 4;
pub const QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE: u32 = 8;
pub const QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS: u32 = 16;
pub const QUERY_ACTCTX_FLAG_NO_ADDREF: u32 = 2147483648;
pub const RESTART_MAX_CMD_LINE: u32 = 1024;
pub const RESTART_NO_CRASH: u32 = 1;
pub const RESTART_NO_HANG: u32 = 2;
pub const RESTART_NO_PATCH: u32 = 4;
pub const RESTART_NO_REBOOT: u32 = 8;
pub const RECOVERY_DEFAULT_PING_INTERVAL: u32 = 5000;
pub const RECOVERY_MAX_PING_INTERVAL: u32 = 300000;
pub const MICROSOFT_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS: u32 = 0;
pub const R2_BLACK: u32 = 1;
pub const R2_NOTMERGEPEN: u32 = 2;
pub const R2_MASKNOTPEN: u32 = 3;
pub const R2_NOTCOPYPEN: u32 = 4;
pub const R2_MASKPENNOT: u32 = 5;
pub const R2_NOT: u32 = 6;
pub const R2_XORPEN: u32 = 7;
pub const R2_NOTMASKPEN: u32 = 8;
pub const R2_MASKPEN: u32 = 9;
pub const R2_NOTXORPEN: u32 = 10;
pub const R2_NOP: u32 = 11;
pub const R2_MERGENOTPEN: u32 = 12;
pub const R2_COPYPEN: u32 = 13;
pub const R2_MERGEPENNOT: u32 = 14;
pub const R2_MERGEPEN: u32 = 15;
pub const R2_WHITE: u32 = 16;
pub const R2_LAST: u32 = 16;
pub const ERROR: u32 = 0;
pub const NULLREGION: u32 = 1;
pub const SIMPLEREGION: u32 = 2;
pub const COMPLEXREGION: u32 = 3;
pub const RGN_ERROR: u32 = 0;
pub const RGN_AND: u32 = 1;
pub const RGN_OR: u32 = 2;
pub const RGN_XOR: u32 = 3;
pub const RGN_DIFF: u32 = 4;
pub const RGN_COPY: u32 = 5;
pub const RGN_MIN: u32 = 1;
pub const RGN_MAX: u32 = 5;
pub const BLACKONWHITE: u32 = 1;
pub const WHITEONBLACK: u32 = 2;
pub const COLORONCOLOR: u32 = 3;
pub const HALFTONE: u32 = 4;
pub const MAXSTRETCHBLTMODE: u32 = 4;
pub const STRETCH_ANDSCANS: u32 = 1;
pub const STRETCH_ORSCANS: u32 = 2;
pub const STRETCH_DELETESCANS: u32 = 3;
pub const STRETCH_HALFTONE: u32 = 4;
pub const ALTERNATE: u32 = 1;
pub const WINDING: u32 = 2;
pub const POLYFILL_LAST: u32 = 2;
pub const LAYOUT_RTL: u32 = 1;
pub const LAYOUT_BTT: u32 = 2;
pub const LAYOUT_VBH: u32 = 4;
pub const LAYOUT_ORIENTATIONMASK: u32 = 7;
pub const LAYOUT_BITMAPORIENTATIONPRESERVED: u32 = 8;
pub const TA_NOUPDATECP: u32 = 0;
pub const TA_UPDATECP: u32 = 1;
pub const TA_LEFT: u32 = 0;
pub const TA_RIGHT: u32 = 2;
pub const TA_CENTER: u32 = 6;
pub const TA_TOP: u32 = 0;
pub const TA_BOTTOM: u32 = 8;
pub const TA_BASELINE: u32 = 24;
pub const TA_RTLREADING: u32 = 256;
pub const TA_MASK: u32 = 287;
pub const VTA_BASELINE: u32 = 24;
pub const VTA_LEFT: u32 = 8;
pub const VTA_RIGHT: u32 = 0;
pub const VTA_CENTER: u32 = 6;
pub const VTA_BOTTOM: u32 = 2;
pub const VTA_TOP: u32 = 0;
pub const ETO_OPAQUE: u32 = 2;
pub const ETO_CLIPPED: u32 = 4;
pub const ETO_GLYPH_INDEX: u32 = 16;
pub const ETO_RTLREADING: u32 = 128;
pub const ETO_NUMERICSLOCAL: u32 = 1024;
pub const ETO_NUMERICSLATIN: u32 = 2048;
pub const ETO_IGNORELANGUAGE: u32 = 4096;
pub const ETO_PDY: u32 = 8192;
pub const ASPECT_FILTERING: u32 = 1;
pub const DCB_RESET: u32 = 1;
pub const DCB_ACCUMULATE: u32 = 2;
pub const DCB_DIRTY: u32 = 2;
pub const DCB_SET: u32 = 3;
pub const DCB_ENABLE: u32 = 4;
pub const DCB_DISABLE: u32 = 8;
pub const META_SETBKCOLOR: u32 = 513;
pub const META_SETBKMODE: u32 = 258;
pub const META_SETMAPMODE: u32 = 259;
pub const META_SETROP2: u32 = 260;
pub const META_SETRELABS: u32 = 261;
pub const META_SETPOLYFILLMODE: u32 = 262;
pub const META_SETSTRETCHBLTMODE: u32 = 263;
pub const META_SETTEXTCHAREXTRA: u32 = 264;
pub const META_SETTEXTCOLOR: u32 = 521;
pub const META_SETTEXTJUSTIFICATION: u32 = 522;
pub const META_SETWINDOWORG: u32 = 523;
pub const META_SETWINDOWEXT: u32 = 524;
pub const META_SETVIEWPORTORG: u32 = 525;
pub const META_SETVIEWPORTEXT: u32 = 526;
pub const META_OFFSETWINDOWORG: u32 = 527;
pub const META_SCALEWINDOWEXT: u32 = 1040;
pub const META_OFFSETVIEWPORTORG: u32 = 529;
pub const META_SCALEVIEWPORTEXT: u32 = 1042;
pub const META_LINETO: u32 = 531;
pub const META_MOVETO: u32 = 532;
pub const META_EXCLUDECLIPRECT: u32 = 1045;
pub const META_INTERSECTCLIPRECT: u32 = 1046;
pub const META_ARC: u32 = 2071;
pub const META_ELLIPSE: u32 = 1048;
pub const META_FLOODFILL: u32 = 1049;
pub const META_PIE: u32 = 2074;
pub const META_RECTANGLE: u32 = 1051;
pub const META_ROUNDRECT: u32 = 1564;
pub const META_PATBLT: u32 = 1565;
pub const META_SAVEDC: u32 = 30;
pub const META_SETPIXEL: u32 = 1055;
pub const META_OFFSETCLIPRGN: u32 = 544;
pub const META_TEXTOUT: u32 = 1313;
pub const META_BITBLT: u32 = 2338;
pub const META_STRETCHBLT: u32 = 2851;
pub const META_POLYGON: u32 = 804;
pub const META_POLYLINE: u32 = 805;
pub const META_ESCAPE: u32 = 1574;
pub const META_RESTOREDC: u32 = 295;
pub const META_FILLREGION: u32 = 552;
pub const META_FRAMEREGION: u32 = 1065;
pub const META_INVERTREGION: u32 = 298;
pub const META_PAINTREGION: u32 = 299;
pub const META_SELECTCLIPREGION: u32 = 300;
pub const META_SELECTOBJECT: u32 = 301;
pub const META_SETTEXTALIGN: u32 = 302;
pub const META_CHORD: u32 = 2096;
pub const META_SETMAPPERFLAGS: u32 = 561;
pub const META_EXTTEXTOUT: u32 = 2610;
pub const META_SETDIBTODEV: u32 = 3379;
pub const META_SELECTPALETTE: u32 = 564;
pub const META_REALIZEPALETTE: u32 = 53;
pub const META_ANIMATEPALETTE: u32 = 1078;
pub const META_SETPALENTRIES: u32 = 55;
pub const META_POLYPOLYGON: u32 = 1336;
pub const META_RESIZEPALETTE: u32 = 313;
pub const META_DIBBITBLT: u32 = 2368;
pub const META_DIBSTRETCHBLT: u32 = 2881;
pub const META_DIBCREATEPATTERNBRUSH: u32 = 322;
pub const META_STRETCHDIB: u32 = 3907;
pub const META_EXTFLOODFILL: u32 = 1352;
pub const META_SETLAYOUT: u32 = 329;
pub const META_DELETEOBJECT: u32 = 496;
pub const META_CREATEPALETTE: u32 = 247;
pub const META_CREATEPATTERNBRUSH: u32 = 505;
pub const META_CREATEPENINDIRECT: u32 = 762;
pub const META_CREATEFONTINDIRECT: u32 = 763;
pub const META_CREATEBRUSHINDIRECT: u32 = 764;
pub const META_CREATEREGION: u32 = 1791;
pub const NEWFRAME: u32 = 1;
pub const ABORTDOC: u32 = 2;
pub const NEXTBAND: u32 = 3;
pub const SETCOLORTABLE: u32 = 4;
pub const GETCOLORTABLE: u32 = 5;
pub const FLUSHOUTPUT: u32 = 6;
pub const DRAFTMODE: u32 = 7;
pub const QUERYESCSUPPORT: u32 = 8;
pub const SETABORTPROC: u32 = 9;
pub const STARTDOC: u32 = 10;
pub const ENDDOC: u32 = 11;
pub const GETPHYSPAGESIZE: u32 = 12;
pub const GETPRINTINGOFFSET: u32 = 13;
pub const GETSCALINGFACTOR: u32 = 14;
pub const MFCOMMENT: u32 = 15;
pub const GETPENWIDTH: u32 = 16;
pub const SETCOPYCOUNT: u32 = 17;
pub const SELECTPAPERSOURCE: u32 = 18;
pub const DEVICEDATA: u32 = 19;
pub const PASSTHROUGH: u32 = 19;
pub const GETTECHNOLGY: u32 = 20;
pub const GETTECHNOLOGY: u32 = 20;
pub const SETLINECAP: u32 = 21;
pub const SETLINEJOIN: u32 = 22;
pub const SETMITERLIMIT: u32 = 23;
pub const BANDINFO: u32 = 24;
pub const DRAWPATTERNRECT: u32 = 25;
pub const GETVECTORPENSIZE: u32 = 26;
pub const GETVECTORBRUSHSIZE: u32 = 27;
pub const ENABLEDUPLEX: u32 = 28;
pub const GETSETPAPERBINS: u32 = 29;
pub const GETSETPRINTORIENT: u32 = 30;
pub const ENUMPAPERBINS: u32 = 31;
pub const SETDIBSCALING: u32 = 32;
pub const EPSPRINTING: u32 = 33;
pub const ENUMPAPERMETRICS: u32 = 34;
pub const GETSETPAPERMETRICS: u32 = 35;
pub const POSTSCRIPT_DATA: u32 = 37;
pub const POSTSCRIPT_IGNORE: u32 = 38;
pub const MOUSETRAILS: u32 = 39;
pub const GETDEVICEUNITS: u32 = 42;
pub const GETEXTENDEDTEXTMETRICS: u32 = 256;
pub const GETEXTENTTABLE: u32 = 257;
pub const GETPAIRKERNTABLE: u32 = 258;
pub const GETTRACKKERNTABLE: u32 = 259;
pub const EXTTEXTOUT: u32 = 512;
pub const GETFACENAME: u32 = 513;
pub const DOWNLOADFACE: u32 = 514;
pub const ENABLERELATIVEWIDTHS: u32 = 768;
pub const ENABLEPAIRKERNING: u32 = 769;
pub const SETKERNTRACK: u32 = 770;
pub const SETALLJUSTVALUES: u32 = 771;
pub const SETCHARSET: u32 = 772;
pub const STRETCHBLT: u32 = 2048;
pub const METAFILE_DRIVER: u32 = 2049;
pub const GETSETSCREENPARAMS: u32 = 3072;
pub const QUERYDIBSUPPORT: u32 = 3073;
pub const BEGIN_PATH: u32 = 4096;
pub const CLIP_TO_PATH: u32 = 4097;
pub const END_PATH: u32 = 4098;
pub const EXT_DEVICE_CAPS: u32 = 4099;
pub const RESTORE_CTM: u32 = 4100;
pub const SAVE_CTM: u32 = 4101;
pub const SET_ARC_DIRECTION: u32 = 4102;
pub const SET_BACKGROUND_COLOR: u32 = 4103;
pub const SET_POLY_MODE: u32 = 4104;
pub const SET_SCREEN_ANGLE: u32 = 4105;
pub const SET_SPREAD: u32 = 4106;
pub const TRANSFORM_CTM: u32 = 4107;
pub const SET_CLIP_BOX: u32 = 4108;
pub const SET_BOUNDS: u32 = 4109;
pub const SET_MIRROR_MODE: u32 = 4110;
pub const OPENCHANNEL: u32 = 4110;
pub const DOWNLOADHEADER: u32 = 4111;
pub const CLOSECHANNEL: u32 = 4112;
pub const POSTSCRIPT_PASSTHROUGH: u32 = 4115;
pub const ENCAPSULATED_POSTSCRIPT: u32 = 4116;
pub const POSTSCRIPT_IDENTIFY: u32 = 4117;
pub const POSTSCRIPT_INJECTION: u32 = 4118;
pub const CHECKJPEGFORMAT: u32 = 4119;
pub const CHECKPNGFORMAT: u32 = 4120;
pub const GET_PS_FEATURESETTING: u32 = 4121;
pub const GDIPLUS_TS_QUERYVER: u32 = 4122;
pub const GDIPLUS_TS_RECORD: u32 = 4123;
pub const SPCLPASSTHROUGH2: u32 = 4568;
pub const PSIDENT_GDICENTRIC: u32 = 0;
pub const PSIDENT_PSCENTRIC: u32 = 1;
pub const PSINJECT_BEGINSTREAM: u32 = 1;
pub const PSINJECT_PSADOBE: u32 = 2;
pub const PSINJECT_PAGESATEND: u32 = 3;
pub const PSINJECT_PAGES: u32 = 4;
pub const PSINJECT_DOCNEEDEDRES: u32 = 5;
pub const PSINJECT_DOCSUPPLIEDRES: u32 = 6;
pub const PSINJECT_PAGEORDER: u32 = 7;
pub const PSINJECT_ORIENTATION: u32 = 8;
pub const PSINJECT_BOUNDINGBOX: u32 = 9;
pub const PSINJECT_DOCUMENTPROCESSCOLORS: u32 = 10;
pub const PSINJECT_COMMENTS: u32 = 11;
pub const PSINJECT_BEGINDEFAULTS: u32 = 12;
pub const PSINJECT_ENDDEFAULTS: u32 = 13;
pub const PSINJECT_BEGINPROLOG: u32 = 14;
pub const PSINJECT_ENDPROLOG: u32 = 15;
pub const PSINJECT_BEGINSETUP: u32 = 16;
pub const PSINJECT_ENDSETUP: u32 = 17;
pub const PSINJECT_TRAILER: u32 = 18;
pub const PSINJECT_EOF: u32 = 19;
pub const PSINJECT_ENDSTREAM: u32 = 20;
pub const PSINJECT_DOCUMENTPROCESSCOLORSATEND: u32 = 21;
pub const PSINJECT_PAGENUMBER: u32 = 100;
pub const PSINJECT_BEGINPAGESETUP: u32 = 101;
pub const PSINJECT_ENDPAGESETUP: u32 = 102;
pub const PSINJECT_PAGETRAILER: u32 = 103;
pub const PSINJECT_PLATECOLOR: u32 = 104;
pub const PSINJECT_SHOWPAGE: u32 = 105;
pub const PSINJECT_PAGEBBOX: u32 = 106;
pub const PSINJECT_ENDPAGECOMMENTS: u32 = 107;
pub const PSINJECT_VMSAVE: u32 = 200;
pub const PSINJECT_VMRESTORE: u32 = 201;
pub const FEATURESETTING_NUP: u32 = 0;
pub const FEATURESETTING_OUTPUT: u32 = 1;
pub const FEATURESETTING_PSLEVEL: u32 = 2;
pub const FEATURESETTING_CUSTPAPER: u32 = 3;
pub const FEATURESETTING_MIRROR: u32 = 4;
pub const FEATURESETTING_NEGATIVE: u32 = 5;
pub const FEATURESETTING_PROTOCOL: u32 = 6;
pub const FEATURESETTING_PRIVATE_BEGIN: u32 = 4096;
pub const FEATURESETTING_PRIVATE_END: u32 = 8191;
pub const PSPROTOCOL_ASCII: u32 = 0;
pub const PSPROTOCOL_BCP: u32 = 1;
pub const PSPROTOCOL_TBCP: u32 = 2;
pub const PSPROTOCOL_BINARY: u32 = 3;
pub const QDI_SETDIBITS: u32 = 1;
pub const QDI_GETDIBITS: u32 = 2;
pub const QDI_DIBTOSCREEN: u32 = 4;
pub const QDI_STRETCHDIB: u32 = 8;
pub const SP_NOTREPORTED: u32 = 16384;
pub const SP_ERROR: i32 = -1;
pub const SP_APPABORT: i32 = -2;
pub const SP_USERABORT: i32 = -3;
pub const SP_OUTOFDISK: i32 = -4;
pub const SP_OUTOFMEMORY: i32 = -5;
pub const PR_JOBSTATUS: u32 = 0;
pub const OBJ_PEN: u32 = 1;
pub const OBJ_BRUSH: u32 = 2;
pub const OBJ_DC: u32 = 3;
pub const OBJ_METADC: u32 = 4;
pub const OBJ_PAL: u32 = 5;
pub const OBJ_FONT: u32 = 6;
pub const OBJ_BITMAP: u32 = 7;
pub const OBJ_REGION: u32 = 8;
pub const OBJ_METAFILE: u32 = 9;
pub const OBJ_MEMDC: u32 = 10;
pub const OBJ_EXTPEN: u32 = 11;
pub const OBJ_ENHMETADC: u32 = 12;
pub const OBJ_ENHMETAFILE: u32 = 13;
pub const OBJ_COLORSPACE: u32 = 14;
pub const GDI_OBJ_LAST: u32 = 14;
pub const MWT_IDENTITY: u32 = 1;
pub const MWT_LEFTMULTIPLY: u32 = 2;
pub const MWT_RIGHTMULTIPLY: u32 = 3;
pub const MWT_MIN: u32 = 1;
pub const MWT_MAX: u32 = 3;
pub const CM_OUT_OF_GAMUT: u32 = 255;
pub const CM_IN_GAMUT: u32 = 0;
pub const ICM_ADDPROFILE: u32 = 1;
pub const ICM_DELETEPROFILE: u32 = 2;
pub const ICM_QUERYPROFILE: u32 = 3;
pub const ICM_SETDEFAULTPROFILE: u32 = 4;
pub const ICM_REGISTERICMATCHER: u32 = 5;
pub const ICM_UNREGISTERICMATCHER: u32 = 6;
pub const ICM_QUERYMATCH: u32 = 7;
pub const TCI_SRCCHARSET: u32 = 1;
pub const TCI_SRCCODEPAGE: u32 = 2;
pub const TCI_SRCFONTSIG: u32 = 3;
pub const TCI_SRCLOCALE: u32 = 4096;
pub const TMPF_FIXED_PITCH: u32 = 1;
pub const TMPF_VECTOR: u32 = 2;
pub const TMPF_DEVICE: u32 = 8;
pub const TMPF_TRUETYPE: u32 = 4;
pub const NTM_NONNEGATIVE_AC: u32 = 65536;
pub const NTM_PS_OPENTYPE: u32 = 131072;
pub const NTM_TT_OPENTYPE: u32 = 262144;
pub const NTM_MULTIPLEMASTER: u32 = 524288;
pub const NTM_TYPE1: u32 = 1048576;
pub const NTM_DSIG: u32 = 2097152;
pub const LF_FACESIZE: u32 = 32;
pub const LF_FULLFACESIZE: u32 = 64;
pub const OUT_DEFAULT_PRECIS: u32 = 0;
pub const OUT_STRING_PRECIS: u32 = 1;
pub const OUT_CHARACTER_PRECIS: u32 = 2;
pub const OUT_STROKE_PRECIS: u32 = 3;
pub const OUT_TT_PRECIS: u32 = 4;
pub const OUT_DEVICE_PRECIS: u32 = 5;
pub const OUT_RASTER_PRECIS: u32 = 6;
pub const OUT_TT_ONLY_PRECIS: u32 = 7;
pub const OUT_OUTLINE_PRECIS: u32 = 8;
pub const OUT_SCREEN_OUTLINE_PRECIS: u32 = 9;
pub const OUT_PS_ONLY_PRECIS: u32 = 10;
pub const CLIP_DEFAULT_PRECIS: u32 = 0;
pub const CLIP_CHARACTER_PRECIS: u32 = 1;
pub const CLIP_STROKE_PRECIS: u32 = 2;
pub const CLIP_MASK: u32 = 15;
pub const CLIP_LH_ANGLES: u32 = 16;
pub const CLIP_TT_ALWAYS: u32 = 32;
pub const CLIP_EMBEDDED: u32 = 128;
pub const DEFAULT_QUALITY: u32 = 0;
pub const DRAFT_QUALITY: u32 = 1;
pub const PROOF_QUALITY: u32 = 2;
pub const NONANTIALIASED_QUALITY: u32 = 3;
pub const ANTIALIASED_QUALITY: u32 = 4;
pub const CLEARTYPE_QUALITY: u32 = 5;
pub const CLEARTYPE_NATURAL_QUALITY: u32 = 6;
pub const DEFAULT_PITCH: u32 = 0;
pub const FIXED_PITCH: u32 = 1;
pub const VARIABLE_PITCH: u32 = 2;
pub const MONO_FONT: u32 = 8;
pub const ANSI_CHARSET: u32 = 0;
pub const DEFAULT_CHARSET: u32 = 1;
pub const SYMBOL_CHARSET: u32 = 2;
pub const SHIFTJIS_CHARSET: u32 = 128;
pub const HANGEUL_CHARSET: u32 = 129;
pub const HANGUL_CHARSET: u32 = 129;
pub const GB2312_CHARSET: u32 = 134;
pub const CHINESEBIG5_CHARSET: u32 = 136;
pub const OEM_CHARSET: u32 = 255;
pub const JOHAB_CHARSET: u32 = 130;
pub const HEBREW_CHARSET: u32 = 177;
pub const ARABIC_CHARSET: u32 = 178;
pub const GREEK_CHARSET: u32 = 161;
pub const TURKISH_CHARSET: u32 = 162;
pub const VIETNAMESE_CHARSET: u32 = 163;
pub const THAI_CHARSET: u32 = 222;
pub const EASTEUROPE_CHARSET: u32 = 238;
pub const RUSSIAN_CHARSET: u32 = 204;
pub const MAC_CHARSET: u32 = 77;
pub const BALTIC_CHARSET: u32 = 186;
pub const FF_DONTCARE: u32 = 0;
pub const FF_ROMAN: u32 = 16;
pub const FF_SWISS: u32 = 32;
pub const FF_MODERN: u32 = 48;
pub const FF_SCRIPT: u32 = 64;
pub const FF_DECORATIVE: u32 = 80;
pub const FW_DONTCARE: u32 = 0;
pub const FW_THIN: u32 = 100;
pub const FW_EXTRALIGHT: u32 = 200;
pub const FW_LIGHT: u32 = 300;
pub const FW_NORMAL: u32 = 400;
pub const FW_MEDIUM: u32 = 500;
pub const FW_SEMIBOLD: u32 = 600;
pub const FW_BOLD: u32 = 700;
pub const FW_EXTRABOLD: u32 = 800;
pub const FW_HEAVY: u32 = 900;
pub const FW_ULTRALIGHT: u32 = 200;
pub const FW_REGULAR: u32 = 400;
pub const FW_DEMIBOLD: u32 = 600;
pub const FW_ULTRABOLD: u32 = 800;
pub const FW_BLACK: u32 = 900;
pub const PANOSE_COUNT: u32 = 10;
pub const PAN_FAMILYTYPE_INDEX: u32 = 0;
pub const PAN_SERIFSTYLE_INDEX: u32 = 1;
pub const PAN_WEIGHT_INDEX: u32 = 2;
pub const PAN_PROPORTION_INDEX: u32 = 3;
pub const PAN_CONTRAST_INDEX: u32 = 4;
pub const PAN_STROKEVARIATION_INDEX: u32 = 5;
pub const PAN_ARMSTYLE_INDEX: u32 = 6;
pub const PAN_LETTERFORM_INDEX: u32 = 7;
pub const PAN_MIDLINE_INDEX: u32 = 8;
pub const PAN_XHEIGHT_INDEX: u32 = 9;
pub const PAN_CULTURE_LATIN: u32 = 0;
pub const PAN_ANY: u32 = 0;
pub const PAN_NO_FIT: u32 = 1;
pub const PAN_FAMILY_TEXT_DISPLAY: u32 = 2;
pub const PAN_FAMILY_SCRIPT: u32 = 3;
pub const PAN_FAMILY_DECORATIVE: u32 = 4;
pub const PAN_FAMILY_PICTORIAL: u32 = 5;
pub const PAN_SERIF_COVE: u32 = 2;
pub const PAN_SERIF_OBTUSE_COVE: u32 = 3;
pub const PAN_SERIF_SQUARE_COVE: u32 = 4;
pub const PAN_SERIF_OBTUSE_SQUARE_COVE: u32 = 5;
pub const PAN_SERIF_SQUARE: u32 = 6;
pub const PAN_SERIF_THIN: u32 = 7;
pub const PAN_SERIF_BONE: u32 = 8;
pub const PAN_SERIF_EXAGGERATED: u32 = 9;
pub const PAN_SERIF_TRIANGLE: u32 = 10;
pub const PAN_SERIF_NORMAL_SANS: u32 = 11;
pub const PAN_SERIF_OBTUSE_SANS: u32 = 12;
pub const PAN_SERIF_PERP_SANS: u32 = 13;
pub const PAN_SERIF_FLARED: u32 = 14;
pub const PAN_SERIF_ROUNDED: u32 = 15;
pub const PAN_WEIGHT_VERY_LIGHT: u32 = 2;
pub const PAN_WEIGHT_LIGHT: u32 = 3;
pub const PAN_WEIGHT_THIN: u32 = 4;
pub const PAN_WEIGHT_BOOK: u32 = 5;
pub const PAN_WEIGHT_MEDIUM: u32 = 6;
pub const PAN_WEIGHT_DEMI: u32 = 7;
pub const PAN_WEIGHT_BOLD: u32 = 8;
pub const PAN_WEIGHT_HEAVY: u32 = 9;
pub const PAN_WEIGHT_BLACK: u32 = 10;
pub const PAN_WEIGHT_NORD: u32 = 11;
pub const PAN_PROP_OLD_STYLE: u32 = 2;
pub const PAN_PROP_MODERN: u32 = 3;
pub const PAN_PROP_EVEN_WIDTH: u32 = 4;
pub const PAN_PROP_EXPANDED: u32 = 5;
pub const PAN_PROP_CONDENSED: u32 = 6;
pub const PAN_PROP_VERY_EXPANDED: u32 = 7;
pub const PAN_PROP_VERY_CONDENSED: u32 = 8;
pub const PAN_PROP_MONOSPACED: u32 = 9;
pub const PAN_CONTRAST_NONE: u32 = 2;
pub const PAN_CONTRAST_VERY_LOW: u32 = 3;
pub const PAN_CONTRAST_LOW: u32 = 4;
pub const PAN_CONTRAST_MEDIUM_LOW: u32 = 5;
pub const PAN_CONTRAST_MEDIUM: u32 = 6;
pub const PAN_CONTRAST_MEDIUM_HIGH: u32 = 7;
pub const PAN_CONTRAST_HIGH: u32 = 8;
pub const PAN_CONTRAST_VERY_HIGH: u32 = 9;
pub const PAN_STROKE_GRADUAL_DIAG: u32 = 2;
pub const PAN_STROKE_GRADUAL_TRAN: u32 = 3;
pub const PAN_STROKE_GRADUAL_VERT: u32 = 4;
pub const PAN_STROKE_GRADUAL_HORZ: u32 = 5;
pub const PAN_STROKE_RAPID_VERT: u32 = 6;
pub const PAN_STROKE_RAPID_HORZ: u32 = 7;
pub const PAN_STROKE_INSTANT_VERT: u32 = 8;
pub const PAN_STRAIGHT_ARMS_HORZ: u32 = 2;
pub const PAN_STRAIGHT_ARMS_WEDGE: u32 = 3;
pub const PAN_STRAIGHT_ARMS_VERT: u32 = 4;
pub const PAN_STRAIGHT_ARMS_SINGLE_SERIF: u32 = 5;
pub const PAN_STRAIGHT_ARMS_DOUBLE_SERIF: u32 = 6;
pub const PAN_BENT_ARMS_HORZ: u32 = 7;
pub const PAN_BENT_ARMS_WEDGE: u32 = 8;
pub const PAN_BENT_ARMS_VERT: u32 = 9;
pub const PAN_BENT_ARMS_SINGLE_SERIF: u32 = 10;
pub const PAN_BENT_ARMS_DOUBLE_SERIF: u32 = 11;
pub const PAN_LETT_NORMAL_CONTACT: u32 = 2;
pub const PAN_LETT_NORMAL_WEIGHTED: u32 = 3;
pub const PAN_LETT_NORMAL_BOXED: u32 = 4;
pub const PAN_LETT_NORMAL_FLATTENED: u32 = 5;
pub const PAN_LETT_NORMAL_ROUNDED: u32 = 6;
pub const PAN_LETT_NORMAL_OFF_CENTER: u32 = 7;
pub const PAN_LETT_NORMAL_SQUARE: u32 = 8;
pub const PAN_LETT_OBLIQUE_CONTACT: u32 = 9;
pub const PAN_LETT_OBLIQUE_WEIGHTED: u32 = 10;
pub const PAN_LETT_OBLIQUE_BOXED: u32 = 11;
pub const PAN_LETT_OBLIQUE_FLATTENED: u32 = 12;
pub const PAN_LETT_OBLIQUE_ROUNDED: u32 = 13;
pub const PAN_LETT_OBLIQUE_OFF_CENTER: u32 = 14;
pub const PAN_LETT_OBLIQUE_SQUARE: u32 = 15;
pub const PAN_MIDLINE_STANDARD_TRIMMED: u32 = 2;
pub const PAN_MIDLINE_STANDARD_POINTED: u32 = 3;
pub const PAN_MIDLINE_STANDARD_SERIFED: u32 = 4;
pub const PAN_MIDLINE_HIGH_TRIMMED: u32 = 5;
pub const PAN_MIDLINE_HIGH_POINTED: u32 = 6;
pub const PAN_MIDLINE_HIGH_SERIFED: u32 = 7;
pub const PAN_MIDLINE_CONSTANT_TRIMMED: u32 = 8;
pub const PAN_MIDLINE_CONSTANT_POINTED: u32 = 9;
pub const PAN_MIDLINE_CONSTANT_SERIFED: u32 = 10;
pub const PAN_MIDLINE_LOW_TRIMMED: u32 = 11;
pub const PAN_MIDLINE_LOW_POINTED: u32 = 12;
pub const PAN_MIDLINE_LOW_SERIFED: u32 = 13;
pub const PAN_XHEIGHT_CONSTANT_SMALL: u32 = 2;
pub const PAN_XHEIGHT_CONSTANT_STD: u32 = 3;
pub const PAN_XHEIGHT_CONSTANT_LARGE: u32 = 4;
pub const PAN_XHEIGHT_DUCKING_SMALL: u32 = 5;
pub const PAN_XHEIGHT_DUCKING_STD: u32 = 6;
pub const PAN_XHEIGHT_DUCKING_LARGE: u32 = 7;
pub const ELF_VENDOR_SIZE: u32 = 4;
pub const ELF_VERSION: u32 = 0;
pub const ELF_CULTURE_LATIN: u32 = 0;
pub const RASTER_FONTTYPE: u32 = 1;
pub const DEVICE_FONTTYPE: u32 = 2;
pub const TRUETYPE_FONTTYPE: u32 = 4;
pub const PC_RESERVED: u32 = 1;
pub const PC_EXPLICIT: u32 = 2;
pub const PC_NOCOLLAPSE: u32 = 4;
pub const TRANSPARENT: u32 = 1;
pub const OPAQUE: u32 = 2;
pub const BKMODE_LAST: u32 = 2;
pub const GM_COMPATIBLE: u32 = 1;
pub const GM_ADVANCED: u32 = 2;
pub const GM_LAST: u32 = 2;
pub const PT_CLOSEFIGURE: u32 = 1;
pub const PT_LINETO: u32 = 2;
pub const PT_BEZIERTO: u32 = 4;
pub const PT_MOVETO: u32 = 6;
pub const MM_TEXT: u32 = 1;
pub const MM_LOMETRIC: u32 = 2;
pub const MM_HIMETRIC: u32 = 3;
pub const MM_LOENGLISH: u32 = 4;
pub const MM_HIENGLISH: u32 = 5;
pub const MM_TWIPS: u32 = 6;
pub const MM_ISOTROPIC: u32 = 7;
pub const MM_ANISOTROPIC: u32 = 8;
pub const MM_MIN: u32 = 1;
pub const MM_MAX: u32 = 8;
pub const MM_MAX_FIXEDSCALE: u32 = 6;
pub const ABSOLUTE: u32 = 1;
pub const RELATIVE: u32 = 2;
pub const WHITE_BRUSH: u32 = 0;
pub const LTGRAY_BRUSH: u32 = 1;
pub const GRAY_BRUSH: u32 = 2;
pub const DKGRAY_BRUSH: u32 = 3;
pub const BLACK_BRUSH: u32 = 4;
pub const NULL_BRUSH: u32 = 5;
pub const HOLLOW_BRUSH: u32 = 5;
pub const WHITE_PEN: u32 = 6;
pub const BLACK_PEN: u32 = 7;
pub const NULL_PEN: u32 = 8;
pub const OEM_FIXED_FONT: u32 = 10;
pub const ANSI_FIXED_FONT: u32 = 11;
pub const ANSI_VAR_FONT: u32 = 12;
pub const SYSTEM_FONT: u32 = 13;
pub const DEVICE_DEFAULT_FONT: u32 = 14;
pub const DEFAULT_PALETTE: u32 = 15;
pub const SYSTEM_FIXED_FONT: u32 = 16;
pub const DEFAULT_GUI_FONT: u32 = 17;
pub const DC_BRUSH: u32 = 18;
pub const DC_PEN: u32 = 19;
pub const STOCK_LAST: u32 = 19;
pub const CLR_INVALID: u32 = 4294967295;
pub const BS_SOLID: u32 = 0;
pub const BS_NULL: u32 = 1;
pub const BS_HOLLOW: u32 = 1;
pub const BS_HATCHED: u32 = 2;
pub const BS_PATTERN: u32 = 3;
pub const BS_INDEXED: u32 = 4;
pub const BS_DIBPATTERN: u32 = 5;
pub const BS_DIBPATTERNPT: u32 = 6;
pub const BS_PATTERN8X8: u32 = 7;
pub const BS_DIBPATTERN8X8: u32 = 8;
pub const BS_MONOPATTERN: u32 = 9;
pub const HS_HORIZONTAL: u32 = 0;
pub const HS_VERTICAL: u32 = 1;
pub const HS_FDIAGONAL: u32 = 2;
pub const HS_BDIAGONAL: u32 = 3;
pub const HS_CROSS: u32 = 4;
pub const HS_DIAGCROSS: u32 = 5;
pub const HS_API_MAX: u32 = 12;
pub const PS_SOLID: u32 = 0;
pub const PS_DASH: u32 = 1;
pub const PS_DOT: u32 = 2;
pub const PS_DASHDOT: u32 = 3;
pub const PS_DASHDOTDOT: u32 = 4;
pub const PS_NULL: u32 = 5;
pub const PS_INSIDEFRAME: u32 = 6;
pub const PS_USERSTYLE: u32 = 7;
pub const PS_ALTERNATE: u32 = 8;
pub const PS_STYLE_MASK: u32 = 15;
pub const PS_ENDCAP_ROUND: u32 = 0;
pub const PS_ENDCAP_SQUARE: u32 = 256;
pub const PS_ENDCAP_FLAT: u32 = 512;
pub const PS_ENDCAP_MASK: u32 = 3840;
pub const PS_JOIN_ROUND: u32 = 0;
pub const PS_JOIN_BEVEL: u32 = 4096;
pub const PS_JOIN_MITER: u32 = 8192;
pub const PS_JOIN_MASK: u32 = 61440;
pub const PS_COSMETIC: u32 = 0;
pub const PS_GEOMETRIC: u32 = 65536;
pub const PS_TYPE_MASK: u32 = 983040;
pub const AD_COUNTERCLOCKWISE: u32 = 1;
pub const AD_CLOCKWISE: u32 = 2;
pub const DRIVERVERSION: u32 = 0;
pub const TECHNOLOGY: u32 = 2;
pub const HORZSIZE: u32 = 4;
pub const VERTSIZE: u32 = 6;
pub const HORZRES: u32 = 8;
pub const VERTRES: u32 = 10;
pub const BITSPIXEL: u32 = 12;
pub const PLANES: u32 = 14;
pub const NUMBRUSHES: u32 = 16;
pub const NUMPENS: u32 = 18;
pub const NUMMARKERS: u32 = 20;
pub const NUMFONTS: u32 = 22;
pub const NUMCOLORS: u32 = 24;
pub const PDEVICESIZE: u32 = 26;
pub const CURVECAPS: u32 = 28;
pub const LINECAPS: u32 = 30;
pub const POLYGONALCAPS: u32 = 32;
pub const TEXTCAPS: u32 = 34;
pub const CLIPCAPS: u32 = 36;
pub const RASTERCAPS: u32 = 38;
pub const ASPECTX: u32 = 40;
pub const ASPECTY: u32 = 42;
pub const ASPECTXY: u32 = 44;
pub const LOGPIXELSX: u32 = 88;
pub const LOGPIXELSY: u32 = 90;
pub const SIZEPALETTE: u32 = 104;
pub const NUMRESERVED: u32 = 106;
pub const COLORRES: u32 = 108;
pub const PHYSICALWIDTH: u32 = 110;
pub const PHYSICALHEIGHT: u32 = 111;
pub const PHYSICALOFFSETX: u32 = 112;
pub const PHYSICALOFFSETY: u32 = 113;
pub const SCALINGFACTORX: u32 = 114;
pub const SCALINGFACTORY: u32 = 115;
pub const VREFRESH: u32 = 116;
pub const DESKTOPVERTRES: u32 = 117;
pub const DESKTOPHORZRES: u32 = 118;
pub const BLTALIGNMENT: u32 = 119;
pub const SHADEBLENDCAPS: u32 = 120;
pub const COLORMGMTCAPS: u32 = 121;
pub const DT_PLOTTER: u32 = 0;
pub const DT_RASDISPLAY: u32 = 1;
pub const DT_RASPRINTER: u32 = 2;
pub const DT_RASCAMERA: u32 = 3;
pub const DT_CHARSTREAM: u32 = 4;
pub const DT_METAFILE: u32 = 5;
pub const DT_DISPFILE: u32 = 6;
pub const CC_NONE: u32 = 0;
pub const CC_CIRCLES: u32 = 1;
pub const CC_PIE: u32 = 2;
pub const CC_CHORD: u32 = 4;
pub const CC_ELLIPSES: u32 = 8;
pub const CC_WIDE: u32 = 16;
pub const CC_STYLED: u32 = 32;
pub const CC_WIDESTYLED: u32 = 64;
pub const CC_INTERIORS: u32 = 128;
pub const CC_ROUNDRECT: u32 = 256;
pub const LC_NONE: u32 = 0;
pub const LC_POLYLINE: u32 = 2;
pub const LC_MARKER: u32 = 4;
pub const LC_POLYMARKER: u32 = 8;
pub const LC_WIDE: u32 = 16;
pub const LC_STYLED: u32 = 32;
pub const LC_WIDESTYLED: u32 = 64;
pub const LC_INTERIORS: u32 = 128;
pub const PC_NONE: u32 = 0;
pub const PC_POLYGON: u32 = 1;
pub const PC_RECTANGLE: u32 = 2;
pub const PC_WINDPOLYGON: u32 = 4;
pub const PC_TRAPEZOID: u32 = 4;
pub const PC_SCANLINE: u32 = 8;
pub const PC_WIDE: u32 = 16;
pub const PC_STYLED: u32 = 32;
pub const PC_WIDESTYLED: u32 = 64;
pub const PC_INTERIORS: u32 = 128;
pub const PC_POLYPOLYGON: u32 = 256;
pub const PC_PATHS: u32 = 512;
pub const CP_NONE: u32 = 0;
pub const CP_RECTANGLE: u32 = 1;
pub const CP_REGION: u32 = 2;
pub const TC_OP_CHARACTER: u32 = 1;
pub const TC_OP_STROKE: u32 = 2;
pub const TC_CP_STROKE: u32 = 4;
pub const TC_CR_90: u32 = 8;
pub const TC_CR_ANY: u32 = 16;
pub const TC_SF_X_YINDEP: u32 = 32;
pub const TC_SA_DOUBLE: u32 = 64;
pub const TC_SA_INTEGER: u32 = 128;
pub const TC_SA_CONTIN: u32 = 256;
pub const TC_EA_DOUBLE: u32 = 512;
pub const TC_IA_ABLE: u32 = 1024;
pub const TC_UA_ABLE: u32 = 2048;
pub const TC_SO_ABLE: u32 = 4096;
pub const TC_RA_ABLE: u32 = 8192;
pub const TC_VA_ABLE: u32 = 16384;
pub const TC_RESERVED: u32 = 32768;
pub const TC_SCROLLBLT: u32 = 65536;
pub const RC_BITBLT: u32 = 1;
pub const RC_BANDING: u32 = 2;
pub const RC_SCALING: u32 = 4;
pub const RC_BITMAP64: u32 = 8;
pub const RC_GDI20_OUTPUT: u32 = 16;
pub const RC_GDI20_STATE: u32 = 32;
pub const RC_SAVEBITMAP: u32 = 64;
pub const RC_DI_BITMAP: u32 = 128;
pub const RC_PALETTE: u32 = 256;
pub const RC_DIBTODEV: u32 = 512;
pub const RC_BIGFONT: u32 = 1024;
pub const RC_STRETCHBLT: u32 = 2048;
pub const RC_FLOODFILL: u32 = 4096;
pub const RC_STRETCHDIB: u32 = 8192;
pub const RC_OP_DX_OUTPUT: u32 = 16384;
pub const RC_DEVBITS: u32 = 32768;
pub const SB_NONE: u32 = 0;
pub const SB_CONST_ALPHA: u32 = 1;
pub const SB_PIXEL_ALPHA: u32 = 2;
pub const SB_PREMULT_ALPHA: u32 = 4;
pub const SB_GRAD_RECT: u32 = 16;
pub const SB_GRAD_TRI: u32 = 32;
pub const CM_NONE: u32 = 0;
pub const CM_DEVICE_ICM: u32 = 1;
pub const CM_GAMMA_RAMP: u32 = 2;
pub const CM_CMYK_COLOR: u32 = 4;
pub const DIB_RGB_COLORS: u32 = 0;
pub const DIB_PAL_COLORS: u32 = 1;
pub const SYSPAL_ERROR: u32 = 0;
pub const SYSPAL_STATIC: u32 = 1;
pub const SYSPAL_NOSTATIC: u32 = 2;
pub const SYSPAL_NOSTATIC256: u32 = 3;
pub const FLOODFILLBORDER: u32 = 0;
pub const FLOODFILLSURFACE: u32 = 1;
pub const CCHDEVICENAME: u32 = 32;
pub const CCHFORMNAME: u32 = 32;
pub const DM_SPECVERSION: u32 = 1025;
pub const DMORIENT_PORTRAIT: u32 = 1;
pub const DMORIENT_LANDSCAPE: u32 = 2;
pub const DMPAPER_LETTER: u32 = 1;
pub const DMPAPER_LETTERSMALL: u32 = 2;
pub const DMPAPER_TABLOID: u32 = 3;
pub const DMPAPER_LEDGER: u32 = 4;
pub const DMPAPER_LEGAL: u32 = 5;
pub const DMPAPER_STATEMENT: u32 = 6;
pub const DMPAPER_EXECUTIVE: u32 = 7;
pub const DMPAPER_A3: u32 = 8;
pub const DMPAPER_A4: u32 = 9;
pub const DMPAPER_A4SMALL: u32 = 10;
pub const DMPAPER_A5: u32 = 11;
pub const DMPAPER_B4: u32 = 12;
pub const DMPAPER_B5: u32 = 13;
pub const DMPAPER_FOLIO: u32 = 14;
pub const DMPAPER_QUARTO: u32 = 15;
pub const DMPAPER_10X14: u32 = 16;
pub const DMPAPER_11X17: u32 = 17;
pub const DMPAPER_NOTE: u32 = 18;
pub const DMPAPER_ENV_9: u32 = 19;
pub const DMPAPER_ENV_10: u32 = 20;
pub const DMPAPER_ENV_11: u32 = 21;
pub const DMPAPER_ENV_12: u32 = 22;
pub const DMPAPER_ENV_14: u32 = 23;
pub const DMPAPER_CSHEET: u32 = 24;
pub const DMPAPER_DSHEET: u32 = 25;
pub const DMPAPER_ESHEET: u32 = 26;
pub const DMPAPER_ENV_DL: u32 = 27;
pub const DMPAPER_ENV_C5: u32 = 28;
pub const DMPAPER_ENV_C3: u32 = 29;
pub const DMPAPER_ENV_C4: u32 = 30;
pub const DMPAPER_ENV_C6: u32 = 31;
pub const DMPAPER_ENV_C65: u32 = 32;
pub const DMPAPER_ENV_B4: u32 = 33;
pub const DMPAPER_ENV_B5: u32 = 34;
pub const DMPAPER_ENV_B6: u32 = 35;
pub const DMPAPER_ENV_ITALY: u32 = 36;
pub const DMPAPER_ENV_MONARCH: u32 = 37;
pub const DMPAPER_ENV_PERSONAL: u32 = 38;
pub const DMPAPER_FANFOLD_US: u32 = 39;
pub const DMPAPER_FANFOLD_STD_GERMAN: u32 = 40;
pub const DMPAPER_FANFOLD_LGL_GERMAN: u32 = 41;
pub const DMPAPER_ISO_B4: u32 = 42;
pub const DMPAPER_JAPANESE_POSTCARD: u32 = 43;
pub const DMPAPER_9X11: u32 = 44;
pub const DMPAPER_10X11: u32 = 45;
pub const DMPAPER_15X11: u32 = 46;
pub const DMPAPER_ENV_INVITE: u32 = 47;
pub const DMPAPER_RESERVED_48: u32 = 48;
pub const DMPAPER_RESERVED_49: u32 = 49;
pub const DMPAPER_LETTER_EXTRA: u32 = 50;
pub const DMPAPER_LEGAL_EXTRA: u32 = 51;
pub const DMPAPER_TABLOID_EXTRA: u32 = 52;
pub const DMPAPER_A4_EXTRA: u32 = 53;
pub const DMPAPER_LETTER_TRANSVERSE: u32 = 54;
pub const DMPAPER_A4_TRANSVERSE: u32 = 55;
pub const DMPAPER_LETTER_EXTRA_TRANSVERSE: u32 = 56;
pub const DMPAPER_A_PLUS: u32 = 57;
pub const DMPAPER_B_PLUS: u32 = 58;
pub const DMPAPER_LETTER_PLUS: u32 = 59;
pub const DMPAPER_A4_PLUS: u32 = 60;
pub const DMPAPER_A5_TRANSVERSE: u32 = 61;
pub const DMPAPER_B5_TRANSVERSE: u32 = 62;
pub const DMPAPER_A3_EXTRA: u32 = 63;
pub const DMPAPER_A5_EXTRA: u32 = 64;
pub const DMPAPER_B5_EXTRA: u32 = 65;
pub const DMPAPER_A2: u32 = 66;
pub const DMPAPER_A3_TRANSVERSE: u32 = 67;
pub const DMPAPER_A3_EXTRA_TRANSVERSE: u32 = 68;
pub const DMPAPER_DBL_JAPANESE_POSTCARD: u32 = 69;
pub const DMPAPER_A6: u32 = 70;
pub const DMPAPER_JENV_KAKU2: u32 = 71;
pub const DMPAPER_JENV_KAKU3: u32 = 72;
pub const DMPAPER_JENV_CHOU3: u32 = 73;
pub const DMPAPER_JENV_CHOU4: u32 = 74;
pub const DMPAPER_LETTER_ROTATED: u32 = 75;
pub const DMPAPER_A3_ROTATED: u32 = 76;
pub const DMPAPER_A4_ROTATED: u32 = 77;
pub const DMPAPER_A5_ROTATED: u32 = 78;
pub const DMPAPER_B4_JIS_ROTATED: u32 = 79;
pub const DMPAPER_B5_JIS_ROTATED: u32 = 80;
pub const DMPAPER_JAPANESE_POSTCARD_ROTATED: u32 = 81;
pub const DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: u32 = 82;
pub const DMPAPER_A6_ROTATED: u32 = 83;
pub const DMPAPER_JENV_KAKU2_ROTATED: u32 = 84;
pub const DMPAPER_JENV_KAKU3_ROTATED: u32 = 85;
pub const DMPAPER_JENV_CHOU3_ROTATED: u32 = 86;
pub const DMPAPER_JENV_CHOU4_ROTATED: u32 = 87;
pub const DMPAPER_B6_JIS: u32 = 88;
pub const DMPAPER_B6_JIS_ROTATED: u32 = 89;
pub const DMPAPER_12X11: u32 = 90;
pub const DMPAPER_JENV_YOU4: u32 = 91;
pub const DMPAPER_JENV_YOU4_ROTATED: u32 = 92;
pub const DMPAPER_P16K: u32 = 93;
pub const DMPAPER_P32K: u32 = 94;
pub const DMPAPER_P32KBIG: u32 = 95;
pub const DMPAPER_PENV_1: u32 = 96;
pub const DMPAPER_PENV_2: u32 = 97;
pub const DMPAPER_PENV_3: u32 = 98;
pub const DMPAPER_PENV_4: u32 = 99;
pub const DMPAPER_PENV_5: u32 = 100;
pub const DMPAPER_PENV_6: u32 = 101;
pub const DMPAPER_PENV_7: u32 = 102;
pub const DMPAPER_PENV_8: u32 = 103;
pub const DMPAPER_PENV_9: u32 = 104;
pub const DMPAPER_PENV_10: u32 = 105;
pub const DMPAPER_P16K_ROTATED: u32 = 106;
pub const DMPAPER_P32K_ROTATED: u32 = 107;
pub const DMPAPER_P32KBIG_ROTATED: u32 = 108;
pub const DMPAPER_PENV_1_ROTATED: u32 = 109;
pub const DMPAPER_PENV_2_ROTATED: u32 = 110;
pub const DMPAPER_PENV_3_ROTATED: u32 = 111;
pub const DMPAPER_PENV_4_ROTATED: u32 = 112;
pub const DMPAPER_PENV_5_ROTATED: u32 = 113;
pub const DMPAPER_PENV_6_ROTATED: u32 = 114;
pub const DMPAPER_PENV_7_ROTATED: u32 = 115;
pub const DMPAPER_PENV_8_ROTATED: u32 = 116;
pub const DMPAPER_PENV_9_ROTATED: u32 = 117;
pub const DMPAPER_PENV_10_ROTATED: u32 = 118;
pub const DMPAPER_LAST: u32 = 118;
pub const DMPAPER_USER: u32 = 256;
pub const DMBIN_UPPER: u32 = 1;
pub const DMBIN_ONLYONE: u32 = 1;
pub const DMBIN_LOWER: u32 = 2;
pub const DMBIN_MIDDLE: u32 = 3;
pub const DMBIN_MANUAL: u32 = 4;
pub const DMBIN_ENVELOPE: u32 = 5;
pub const DMBIN_ENVMANUAL: u32 = 6;
pub const DMBIN_AUTO: u32 = 7;
pub const DMBIN_TRACTOR: u32 = 8;
pub const DMBIN_SMALLFMT: u32 = 9;
pub const DMBIN_LARGEFMT: u32 = 10;
pub const DMBIN_LARGECAPACITY: u32 = 11;
pub const DMBIN_CASSETTE: u32 = 14;
pub const DMBIN_FORMSOURCE: u32 = 15;
pub const DMBIN_LAST: u32 = 15;
pub const DMBIN_USER: u32 = 256;
pub const DMRES_DRAFT: i32 = -1;
pub const DMRES_LOW: i32 = -2;
pub const DMRES_MEDIUM: i32 = -3;
pub const DMRES_HIGH: i32 = -4;
pub const DMCOLOR_MONOCHROME: u32 = 1;
pub const DMCOLOR_COLOR: u32 = 2;
pub const DMDUP_SIMPLEX: u32 = 1;
pub const DMDUP_VERTICAL: u32 = 2;
pub const DMDUP_HORIZONTAL: u32 = 3;
pub const DMTT_BITMAP: u32 = 1;
pub const DMTT_DOWNLOAD: u32 = 2;
pub const DMTT_SUBDEV: u32 = 3;
pub const DMTT_DOWNLOAD_OUTLINE: u32 = 4;
pub const DMCOLLATE_FALSE: u32 = 0;
pub const DMCOLLATE_TRUE: u32 = 1;
pub const DMDO_DEFAULT: u32 = 0;
pub const DMDO_90: u32 = 1;
pub const DMDO_180: u32 = 2;
pub const DMDO_270: u32 = 3;
pub const DMDFO_DEFAULT: u32 = 0;
pub const DMDFO_STRETCH: u32 = 1;
pub const DMDFO_CENTER: u32 = 2;
pub const DM_INTERLACED: u32 = 2;
pub const DMDISPLAYFLAGS_TEXTMODE: u32 = 4;
pub const DMNUP_SYSTEM: u32 = 1;
pub const DMNUP_ONEUP: u32 = 2;
pub const DMICMMETHOD_NONE: u32 = 1;
pub const DMICMMETHOD_SYSTEM: u32 = 2;
pub const DMICMMETHOD_DRIVER: u32 = 3;
pub const DMICMMETHOD_DEVICE: u32 = 4;
pub const DMICMMETHOD_USER: u32 = 256;
pub const DMICM_SATURATE: u32 = 1;
pub const DMICM_CONTRAST: u32 = 2;
pub const DMICM_COLORIMETRIC: u32 = 3;
pub const DMICM_ABS_COLORIMETRIC: u32 = 4;
pub const DMICM_USER: u32 = 256;
pub const DMMEDIA_STANDARD: u32 = 1;
pub const DMMEDIA_TRANSPARENCY: u32 = 2;
pub const DMMEDIA_GLOSSY: u32 = 3;
pub const DMMEDIA_USER: u32 = 256;
pub const DMDITHER_NONE: u32 = 1;
pub const DMDITHER_COARSE: u32 = 2;
pub const DMDITHER_FINE: u32 = 3;
pub const DMDITHER_LINEART: u32 = 4;
pub const DMDITHER_ERRORDIFFUSION: u32 = 5;
pub const DMDITHER_RESERVED6: u32 = 6;
pub const DMDITHER_RESERVED7: u32 = 7;
pub const DMDITHER_RESERVED8: u32 = 8;
pub const DMDITHER_RESERVED9: u32 = 9;
pub const DMDITHER_GRAYSCALE: u32 = 10;
pub const DMDITHER_USER: u32 = 256;
pub const DISPLAY_DEVICE_ATTACHED_TO_DESKTOP: u32 = 1;
pub const DISPLAY_DEVICE_MULTI_DRIVER: u32 = 2;
pub const DISPLAY_DEVICE_PRIMARY_DEVICE: u32 = 4;
pub const DISPLAY_DEVICE_MIRRORING_DRIVER: u32 = 8;
pub const DISPLAY_DEVICE_VGA_COMPATIBLE: u32 = 16;
pub const DISPLAY_DEVICE_REMOVABLE: u32 = 32;
pub const DISPLAY_DEVICE_TS_COMPATIBLE: u32 = 2097152;
pub const DISPLAY_DEVICE_MODESPRUNED: u32 = 134217728;
pub const DISPLAY_DEVICE_REMOTE: u32 = 67108864;
pub const DISPLAY_DEVICE_DISCONNECT: u32 = 33554432;
pub const DISPLAY_DEVICE_ACTIVE: u32 = 1;
pub const DISPLAY_DEVICE_ATTACHED: u32 = 2;
pub const RDH_RECTANGLES: u32 = 1;
pub const SYSRGN: u32 = 4;
pub const GGO_METRICS: u32 = 0;
pub const GGO_BITMAP: u32 = 1;
pub const GGO_NATIVE: u32 = 2;
pub const GGO_BEZIER: u32 = 3;
pub const GGO_GRAY2_BITMAP: u32 = 4;
pub const GGO_GRAY4_BITMAP: u32 = 5;
pub const GGO_GRAY8_BITMAP: u32 = 6;
pub const GGO_GLYPH_INDEX: u32 = 128;
pub const GGO_UNHINTED: u32 = 256;
pub const TT_POLYGON_TYPE: u32 = 24;
pub const TT_PRIM_LINE: u32 = 1;
pub const TT_PRIM_QSPLINE: u32 = 2;
pub const TT_PRIM_CSPLINE: u32 = 3;
pub const GCP_DBCS: u32 = 1;
pub const GCP_REORDER: u32 = 2;
pub const GCP_USEKERNING: u32 = 8;
pub const GCP_GLYPHSHAPE: u32 = 16;
pub const GCP_LIGATE: u32 = 32;
pub const GCP_DIACRITIC: u32 = 256;
pub const GCP_KASHIDA: u32 = 1024;
pub const GCP_ERROR: u32 = 32768;
pub const FLI_MASK: u32 = 4155;
pub const GCPCLASS_LATIN: u32 = 1;
pub const GCPCLASS_HEBREW: u32 = 2;
pub const GCPCLASS_ARABIC: u32 = 2;
pub const GCPCLASS_NEUTRAL: u32 = 3;
pub const GCPCLASS_LOCALNUMBER: u32 = 4;
pub const GCPCLASS_LATINNUMBER: u32 = 5;
pub const GCPCLASS_LATINNUMERICTERMINATOR: u32 = 6;
pub const GCPCLASS_LATINNUMERICSEPARATOR: u32 = 7;
pub const GCPCLASS_NUMERICSEPARATOR: u32 = 8;
pub const GCPCLASS_PREBOUNDLTR: u32 = 128;
pub const GCPCLASS_PREBOUNDRTL: u32 = 64;
pub const GCPCLASS_POSTBOUNDLTR: u32 = 32;
pub const GCPCLASS_POSTBOUNDRTL: u32 = 16;
pub const GCPGLYPH_LINKBEFORE: u32 = 32768;
pub const GCPGLYPH_LINKAFTER: u32 = 16384;
pub const TT_AVAILABLE: u32 = 1;
pub const TT_ENABLED: u32 = 2;
pub const PFD_TYPE_RGBA: u32 = 0;
pub const PFD_TYPE_COLORINDEX: u32 = 1;
pub const PFD_MAIN_PLANE: u32 = 0;
pub const PFD_OVERLAY_PLANE: u32 = 1;
pub const PFD_UNDERLAY_PLANE: i32 = -1;
pub const PFD_DOUBLEBUFFER: u32 = 1;
pub const PFD_STEREO: u32 = 2;
pub const PFD_DRAW_TO_WINDOW: u32 = 4;
pub const PFD_DRAW_TO_BITMAP: u32 = 8;
pub const PFD_SUPPORT_GDI: u32 = 16;
pub const PFD_SUPPORT_OPENGL: u32 = 32;
pub const PFD_GENERIC_FORMAT: u32 = 64;
pub const PFD_NEED_PALETTE: u32 = 128;
pub const PFD_NEED_SYSTEM_PALETTE: u32 = 256;
pub const PFD_SWAP_EXCHANGE: u32 = 512;
pub const PFD_SWAP_COPY: u32 = 1024;
pub const PFD_SWAP_LAYER_BUFFERS: u32 = 2048;
pub const PFD_GENERIC_ACCELERATED: u32 = 4096;
pub const PFD_SUPPORT_DIRECTDRAW: u32 = 8192;
pub const PFD_DIRECT3D_ACCELERATED: u32 = 16384;
pub const PFD_SUPPORT_COMPOSITION: u32 = 32768;
pub const PFD_DEPTH_DONTCARE: u32 = 536870912;
pub const PFD_DOUBLEBUFFER_DONTCARE: u32 = 1073741824;
pub const PFD_STEREO_DONTCARE: u32 = 2147483648;
pub const DC_BINADJUST: u32 = 19;
pub const DC_EMF_COMPLIANT: u32 = 20;
pub const DC_DATATYPE_PRODUCED: u32 = 21;
pub const DC_COLLATE: u32 = 22;
pub const DC_MANUFACTURER: u32 = 23;
pub const DC_MODEL: u32 = 24;
pub const DC_PERSONALITY: u32 = 25;
pub const DC_PRINTRATE: u32 = 26;
pub const DC_PRINTRATEUNIT: u32 = 27;
pub const PRINTRATEUNIT_PPM: u32 = 1;
pub const PRINTRATEUNIT_CPS: u32 = 2;
pub const PRINTRATEUNIT_LPM: u32 = 3;
pub const PRINTRATEUNIT_IPM: u32 = 4;
pub const DC_PRINTERMEM: u32 = 28;
pub const DC_MEDIAREADY: u32 = 29;
pub const DC_STAPLE: u32 = 30;
pub const DC_PRINTRATEPPM: u32 = 31;
pub const DC_COLORDEVICE: u32 = 32;
pub const DC_NUP: u32 = 33;
pub const DC_MEDIATYPENAMES: u32 = 34;
pub const DC_MEDIATYPES: u32 = 35;
pub const DCBA_FACEUPNONE: u32 = 0;
pub const DCBA_FACEUPCENTER: u32 = 1;
pub const DCBA_FACEUPLEFT: u32 = 2;
pub const DCBA_FACEUPRIGHT: u32 = 3;
pub const DCBA_FACEDOWNNONE: u32 = 256;
pub const DCBA_FACEDOWNCENTER: u32 = 257;
pub const DCBA_FACEDOWNLEFT: u32 = 258;
pub const DCBA_FACEDOWNRIGHT: u32 = 259;
pub const GS_8BIT_INDICES: u32 = 1;
pub const GGI_MARK_NONEXISTING_GLYPHS: u32 = 1;
pub const MM_MAX_NUMAXES: u32 = 16;
pub const FR_PRIVATE: u32 = 16;
pub const FR_NOT_ENUM: u32 = 32;
pub const MM_MAX_AXES_NAMELEN: u32 = 16;
pub const AC_SRC_OVER: u32 = 0;
pub const AC_SRC_ALPHA: u32 = 1;
pub const GRADIENT_FILL_RECT_H: u32 = 0;
pub const GRADIENT_FILL_RECT_V: u32 = 1;
pub const GRADIENT_FILL_TRIANGLE: u32 = 2;
pub const GRADIENT_FILL_OP_FLAG: u32 = 255;
pub const CA_NEGATIVE: u32 = 1;
pub const CA_LOG_FILTER: u32 = 2;
pub const ILLUMINANT_DEVICE_DEFAULT: u32 = 0;
pub const ILLUMINANT_A: u32 = 1;
pub const ILLUMINANT_B: u32 = 2;
pub const ILLUMINANT_C: u32 = 3;
pub const ILLUMINANT_D50: u32 = 4;
pub const ILLUMINANT_D55: u32 = 5;
pub const ILLUMINANT_D65: u32 = 6;
pub const ILLUMINANT_D75: u32 = 7;
pub const ILLUMINANT_F2: u32 = 8;
pub const ILLUMINANT_MAX_INDEX: u32 = 8;
pub const ILLUMINANT_TUNGSTEN: u32 = 1;
pub const ILLUMINANT_DAYLIGHT: u32 = 3;
pub const ILLUMINANT_FLUORESCENT: u32 = 8;
pub const ILLUMINANT_NTSC: u32 = 3;
pub const DI_APPBANDING: u32 = 1;
pub const DI_ROPS_READ_DESTINATION: u32 = 2;
pub const FONTMAPPER_MAX: u32 = 10;
pub const ICM_OFF: u32 = 1;
pub const ICM_ON: u32 = 2;
pub const ICM_QUERY: u32 = 3;
pub const ICM_DONE_OUTSIDEDC: u32 = 4;
pub const ENHMETA_SIGNATURE: u32 = 1179469088;
pub const ENHMETA_STOCK_OBJECT: u32 = 2147483648;
pub const EMR_HEADER: u32 = 1;
pub const EMR_POLYBEZIER: u32 = 2;
pub const EMR_POLYGON: u32 = 3;
pub const EMR_POLYLINE: u32 = 4;
pub const EMR_POLYBEZIERTO: u32 = 5;
pub const EMR_POLYLINETO: u32 = 6;
pub const EMR_POLYPOLYLINE: u32 = 7;
pub const EMR_POLYPOLYGON: u32 = 8;
pub const EMR_SETWINDOWEXTEX: u32 = 9;
pub const EMR_SETWINDOWORGEX: u32 = 10;
pub const EMR_SETVIEWPORTEXTEX: u32 = 11;
pub const EMR_SETVIEWPORTORGEX: u32 = 12;
pub const EMR_SETBRUSHORGEX: u32 = 13;
pub const EMR_EOF: u32 = 14;
pub const EMR_SETPIXELV: u32 = 15;
pub const EMR_SETMAPPERFLAGS: u32 = 16;
pub const EMR_SETMAPMODE: u32 = 17;
pub const EMR_SETBKMODE: u32 = 18;
pub const EMR_SETPOLYFILLMODE: u32 = 19;
pub const EMR_SETROP2: u32 = 20;
pub const EMR_SETSTRETCHBLTMODE: u32 = 21;
pub const EMR_SETTEXTALIGN: u32 = 22;
pub const EMR_SETCOLORADJUSTMENT: u32 = 23;
pub const EMR_SETTEXTCOLOR: u32 = 24;
pub const EMR_SETBKCOLOR: u32 = 25;
pub const EMR_OFFSETCLIPRGN: u32 = 26;
pub const EMR_MOVETOEX: u32 = 27;
pub const EMR_SETMETARGN: u32 = 28;
pub const EMR_EXCLUDECLIPRECT: u32 = 29;
pub const EMR_INTERSECTCLIPRECT: u32 = 30;
pub const EMR_SCALEVIEWPORTEXTEX: u32 = 31;
pub const EMR_SCALEWINDOWEXTEX: u32 = 32;
pub const EMR_SAVEDC: u32 = 33;
pub const EMR_RESTOREDC: u32 = 34;
pub const EMR_SETWORLDTRANSFORM: u32 = 35;
pub const EMR_MODIFYWORLDTRANSFORM: u32 = 36;
pub const EMR_SELECTOBJECT: u32 = 37;
pub const EMR_CREATEPEN: u32 = 38;
pub const EMR_CREATEBRUSHINDIRECT: u32 = 39;
pub const EMR_DELETEOBJECT: u32 = 40;
pub const EMR_ANGLEARC: u32 = 41;
pub const EMR_ELLIPSE: u32 = 42;
pub const EMR_RECTANGLE: u32 = 43;
pub const EMR_ROUNDRECT: u32 = 44;
pub const EMR_ARC: u32 = 45;
pub const EMR_CHORD: u32 = 46;
pub const EMR_PIE: u32 = 47;
pub const EMR_SELECTPALETTE: u32 = 48;
pub const EMR_CREATEPALETTE: u32 = 49;
pub const EMR_SETPALETTEENTRIES: u32 = 50;
pub const EMR_RESIZEPALETTE: u32 = 51;
pub const EMR_REALIZEPALETTE: u32 = 52;
pub const EMR_EXTFLOODFILL: u32 = 53;
pub const EMR_LINETO: u32 = 54;
pub const EMR_ARCTO: u32 = 55;
pub const EMR_POLYDRAW: u32 = 56;
pub const EMR_SETARCDIRECTION: u32 = 57;
pub const EMR_SETMITERLIMIT: u32 = 58;
pub const EMR_BEGINPATH: u32 = 59;
pub const EMR_ENDPATH: u32 = 60;
pub const EMR_CLOSEFIGURE: u32 = 61;
pub const EMR_FILLPATH: u32 = 62;
pub const EMR_STROKEANDFILLPATH: u32 = 63;
pub const EMR_STROKEPATH: u32 = 64;
pub const EMR_FLATTENPATH: u32 = 65;
pub const EMR_WIDENPATH: u32 = 66;
pub const EMR_SELECTCLIPPATH: u32 = 67;
pub const EMR_ABORTPATH: u32 = 68;
pub const EMR_GDICOMMENT: u32 = 70;
pub const EMR_FILLRGN: u32 = 71;
pub const EMR_FRAMERGN: u32 = 72;
pub const EMR_INVERTRGN: u32 = 73;
pub const EMR_PAINTRGN: u32 = 74;
pub const EMR_EXTSELECTCLIPRGN: u32 = 75;
pub const EMR_BITBLT: u32 = 76;
pub const EMR_STRETCHBLT: u32 = 77;
pub const EMR_MASKBLT: u32 = 78;
pub const EMR_PLGBLT: u32 = 79;
pub const EMR_SETDIBITSTODEVICE: u32 = 80;
pub const EMR_STRETCHDIBITS: u32 = 81;
pub const EMR_EXTCREATEFONTINDIRECTW: u32 = 82;
pub const EMR_EXTTEXTOUTA: u32 = 83;
pub const EMR_EXTTEXTOUTW: u32 = 84;
pub const EMR_POLYBEZIER16: u32 = 85;
pub const EMR_POLYGON16: u32 = 86;
pub const EMR_POLYLINE16: u32 = 87;
pub const EMR_POLYBEZIERTO16: u32 = 88;
pub const EMR_POLYLINETO16: u32 = 89;
pub const EMR_POLYPOLYLINE16: u32 = 90;
pub const EMR_POLYPOLYGON16: u32 = 91;
pub const EMR_POLYDRAW16: u32 = 92;
pub const EMR_CREATEMONOBRUSH: u32 = 93;
pub const EMR_CREATEDIBPATTERNBRUSHPT: u32 = 94;
pub const EMR_EXTCREATEPEN: u32 = 95;
pub const EMR_POLYTEXTOUTA: u32 = 96;
pub const EMR_POLYTEXTOUTW: u32 = 97;
pub const EMR_SETICMMODE: u32 = 98;
pub const EMR_CREATECOLORSPACE: u32 = 99;
pub const EMR_SETCOLORSPACE: u32 = 100;
pub const EMR_DELETECOLORSPACE: u32 = 101;
pub const EMR_GLSRECORD: u32 = 102;
pub const EMR_GLSBOUNDEDRECORD: u32 = 103;
pub const EMR_PIXELFORMAT: u32 = 104;
pub const EMR_RESERVED_105: u32 = 105;
pub const EMR_RESERVED_106: u32 = 106;
pub const EMR_RESERVED_107: u32 = 107;
pub const EMR_RESERVED_108: u32 = 108;
pub const EMR_RESERVED_109: u32 = 109;
pub const EMR_RESERVED_110: u32 = 110;
pub const EMR_COLORCORRECTPALETTE: u32 = 111;
pub const EMR_SETICMPROFILEA: u32 = 112;
pub const EMR_SETICMPROFILEW: u32 = 113;
pub const EMR_ALPHABLEND: u32 = 114;
pub const EMR_SETLAYOUT: u32 = 115;
pub const EMR_TRANSPARENTBLT: u32 = 116;
pub const EMR_RESERVED_117: u32 = 117;
pub const EMR_GRADIENTFILL: u32 = 118;
pub const EMR_RESERVED_119: u32 = 119;
pub const EMR_RESERVED_120: u32 = 120;
pub const EMR_COLORMATCHTOTARGETW: u32 = 121;
pub const EMR_CREATECOLORSPACEW: u32 = 122;
pub const EMR_MIN: u32 = 1;
pub const EMR_MAX: u32 = 122;
pub const SETICMPROFILE_EMBEDED: u32 = 1;
pub const CREATECOLORSPACE_EMBEDED: u32 = 1;
pub const COLORMATCHTOTARGET_EMBEDED: u32 = 1;
pub const GDICOMMENT_IDENTIFIER: u32 = 1128875079;
pub const GDICOMMENT_WINDOWS_METAFILE: u32 = 2147483649;
pub const GDICOMMENT_BEGINGROUP: u32 = 2;
pub const GDICOMMENT_ENDGROUP: u32 = 3;
pub const GDICOMMENT_MULTIFORMATS: u32 = 1073741828;
pub const EPS_SIGNATURE: u32 = 1179865157;
pub const GDICOMMENT_UNICODE_STRING: u32 = 64;
pub const GDICOMMENT_UNICODE_END: u32 = 128;
pub const WGL_FONT_LINES: u32 = 0;
pub const WGL_FONT_POLYGONS: u32 = 1;
pub const LPD_DOUBLEBUFFER: u32 = 1;
pub const LPD_STEREO: u32 = 2;
pub const LPD_SUPPORT_GDI: u32 = 16;
pub const LPD_SUPPORT_OPENGL: u32 = 32;
pub const LPD_SHARE_DEPTH: u32 = 64;
pub const LPD_SHARE_STENCIL: u32 = 128;
pub const LPD_SHARE_ACCUM: u32 = 256;
pub const LPD_SWAP_EXCHANGE: u32 = 512;
pub const LPD_SWAP_COPY: u32 = 1024;
pub const LPD_TRANSPARENT: u32 = 4096;
pub const LPD_TYPE_RGBA: u32 = 0;
pub const LPD_TYPE_COLORINDEX: u32 = 1;
pub const WGL_SWAP_MAIN_PLANE: u32 = 1;
pub const WGL_SWAP_OVERLAY1: u32 = 2;
pub const WGL_SWAP_OVERLAY2: u32 = 4;
pub const WGL_SWAP_OVERLAY3: u32 = 8;
pub const WGL_SWAP_OVERLAY4: u32 = 16;
pub const WGL_SWAP_OVERLAY5: u32 = 32;
pub const WGL_SWAP_OVERLAY6: u32 = 64;
pub const WGL_SWAP_OVERLAY7: u32 = 128;
pub const WGL_SWAP_OVERLAY8: u32 = 256;
pub const WGL_SWAP_OVERLAY9: u32 = 512;
pub const WGL_SWAP_OVERLAY10: u32 = 1024;
pub const WGL_SWAP_OVERLAY11: u32 = 2048;
pub const WGL_SWAP_OVERLAY12: u32 = 4096;
pub const WGL_SWAP_OVERLAY13: u32 = 8192;
pub const WGL_SWAP_OVERLAY14: u32 = 16384;
pub const WGL_SWAP_OVERLAY15: u32 = 32768;
pub const WGL_SWAP_UNDERLAY1: u32 = 65536;
pub const WGL_SWAP_UNDERLAY2: u32 = 131072;
pub const WGL_SWAP_UNDERLAY3: u32 = 262144;
pub const WGL_SWAP_UNDERLAY4: u32 = 524288;
pub const WGL_SWAP_UNDERLAY5: u32 = 1048576;
pub const WGL_SWAP_UNDERLAY6: u32 = 2097152;
pub const WGL_SWAP_UNDERLAY7: u32 = 4194304;
pub const WGL_SWAP_UNDERLAY8: u32 = 8388608;
pub const WGL_SWAP_UNDERLAY9: u32 = 16777216;
pub const WGL_SWAP_UNDERLAY10: u32 = 33554432;
pub const WGL_SWAP_UNDERLAY11: u32 = 67108864;
pub const WGL_SWAP_UNDERLAY12: u32 = 134217728;
pub const WGL_SWAP_UNDERLAY13: u32 = 268435456;
pub const WGL_SWAP_UNDERLAY14: u32 = 536870912;
pub const WGL_SWAP_UNDERLAY15: u32 = 1073741824;
pub const WGL_SWAPMULTIPLE_MAX: u32 = 16;
pub const DIFFERENCE: u32 = 11;
pub const SB_HORZ: u32 = 0;
pub const SB_VERT: u32 = 1;
pub const SB_CTL: u32 = 2;
pub const SB_BOTH: u32 = 3;
pub const SB_LINEUP: u32 = 0;
pub const SB_LINELEFT: u32 = 0;
pub const SB_LINEDOWN: u32 = 1;
pub const SB_LINERIGHT: u32 = 1;
pub const SB_PAGEUP: u32 = 2;
pub const SB_PAGELEFT: u32 = 2;
pub const SB_PAGEDOWN: u32 = 3;
pub const SB_PAGERIGHT: u32 = 3;
pub const SB_THUMBPOSITION: u32 = 4;
pub const SB_THUMBTRACK: u32 = 5;
pub const SB_TOP: u32 = 6;
pub const SB_LEFT: u32 = 6;
pub const SB_BOTTOM: u32 = 7;
pub const SB_RIGHT: u32 = 7;
pub const SB_ENDSCROLL: u32 = 8;
pub const SW_HIDE: u32 = 0;
pub const SW_SHOWNORMAL: u32 = 1;
pub const SW_NORMAL: u32 = 1;
pub const SW_SHOWMINIMIZED: u32 = 2;
pub const SW_SHOWMAXIMIZED: u32 = 3;
pub const SW_MAXIMIZE: u32 = 3;
pub const SW_SHOWNOACTIVATE: u32 = 4;
pub const SW_SHOW: u32 = 5;
pub const SW_MINIMIZE: u32 = 6;
pub const SW_SHOWMINNOACTIVE: u32 = 7;
pub const SW_SHOWNA: u32 = 8;
pub const SW_RESTORE: u32 = 9;
pub const SW_SHOWDEFAULT: u32 = 10;
pub const SW_FORCEMINIMIZE: u32 = 11;
pub const SW_MAX: u32 = 11;
pub const HIDE_WINDOW: u32 = 0;
pub const SHOW_OPENWINDOW: u32 = 1;
pub const SHOW_ICONWINDOW: u32 = 2;
pub const SHOW_FULLSCREEN: u32 = 3;
pub const SHOW_OPENNOACTIVATE: u32 = 4;
pub const SW_PARENTCLOSING: u32 = 1;
pub const SW_OTHERZOOM: u32 = 2;
pub const SW_PARENTOPENING: u32 = 3;
pub const SW_OTHERUNZOOM: u32 = 4;
pub const AW_HOR_POSITIVE: u32 = 1;
pub const AW_HOR_NEGATIVE: u32 = 2;
pub const AW_VER_POSITIVE: u32 = 4;
pub const AW_VER_NEGATIVE: u32 = 8;
pub const AW_CENTER: u32 = 16;
pub const AW_HIDE: u32 = 65536;
pub const AW_ACTIVATE: u32 = 131072;
pub const AW_SLIDE: u32 = 262144;
pub const AW_BLEND: u32 = 524288;
pub const KF_EXTENDED: u32 = 256;
pub const KF_DLGMODE: u32 = 2048;
pub const KF_MENUMODE: u32 = 4096;
pub const KF_ALTDOWN: u32 = 8192;
pub const KF_REPEAT: u32 = 16384;
pub const KF_UP: u32 = 32768;
pub const VK_LBUTTON: u32 = 1;
pub const VK_RBUTTON: u32 = 2;
pub const VK_CANCEL: u32 = 3;
pub const VK_MBUTTON: u32 = 4;
pub const VK_XBUTTON1: u32 = 5;
pub const VK_XBUTTON2: u32 = 6;
pub const VK_BACK: u32 = 8;
pub const VK_TAB: u32 = 9;
pub const VK_CLEAR: u32 = 12;
pub const VK_RETURN: u32 = 13;
pub const VK_SHIFT: u32 = 16;
pub const VK_CONTROL: u32 = 17;
pub const VK_MENU: u32 = 18;
pub const VK_PAUSE: u32 = 19;
pub const VK_CAPITAL: u32 = 20;
pub const VK_KANA: u32 = 21;
pub const VK_HANGEUL: u32 = 21;
pub const VK_HANGUL: u32 = 21;
pub const VK_JUNJA: u32 = 23;
pub const VK_FINAL: u32 = 24;
pub const VK_HANJA: u32 = 25;
pub const VK_KANJI: u32 = 25;
pub const VK_ESCAPE: u32 = 27;
pub const VK_CONVERT: u32 = 28;
pub const VK_NONCONVERT: u32 = 29;
pub const VK_ACCEPT: u32 = 30;
pub const VK_MODECHANGE: u32 = 31;
pub const VK_SPACE: u32 = 32;
pub const VK_PRIOR: u32 = 33;
pub const VK_NEXT: u32 = 34;
pub const VK_END: u32 = 35;
pub const VK_HOME: u32 = 36;
pub const VK_LEFT: u32 = 37;
pub const VK_UP: u32 = 38;
pub const VK_RIGHT: u32 = 39;
pub const VK_DOWN: u32 = 40;
pub const VK_SELECT: u32 = 41;
pub const VK_PRINT: u32 = 42;
pub const VK_EXECUTE: u32 = 43;
pub const VK_SNAPSHOT: u32 = 44;
pub const VK_INSERT: u32 = 45;
pub const VK_DELETE: u32 = 46;
pub const VK_HELP: u32 = 47;
pub const VK_LWIN: u32 = 91;
pub const VK_RWIN: u32 = 92;
pub const VK_APPS: u32 = 93;
pub const VK_SLEEP: u32 = 95;
pub const VK_NUMPAD0: u32 = 96;
pub const VK_NUMPAD1: u32 = 97;
pub const VK_NUMPAD2: u32 = 98;
pub const VK_NUMPAD3: u32 = 99;
pub const VK_NUMPAD4: u32 = 100;
pub const VK_NUMPAD5: u32 = 101;
pub const VK_NUMPAD6: u32 = 102;
pub const VK_NUMPAD7: u32 = 103;
pub const VK_NUMPAD8: u32 = 104;
pub const VK_NUMPAD9: u32 = 105;
pub const VK_MULTIPLY: u32 = 106;
pub const VK_ADD: u32 = 107;
pub const VK_SEPARATOR: u32 = 108;
pub const VK_SUBTRACT: u32 = 109;
pub const VK_DECIMAL: u32 = 110;
pub const VK_DIVIDE: u32 = 111;
pub const VK_F1: u32 = 112;
pub const VK_F2: u32 = 113;
pub const VK_F3: u32 = 114;
pub const VK_F4: u32 = 115;
pub const VK_F5: u32 = 116;
pub const VK_F6: u32 = 117;
pub const VK_F7: u32 = 118;
pub const VK_F8: u32 = 119;
pub const VK_F9: u32 = 120;
pub const VK_F10: u32 = 121;
pub const VK_F11: u32 = 122;
pub const VK_F12: u32 = 123;
pub const VK_F13: u32 = 124;
pub const VK_F14: u32 = 125;
pub const VK_F15: u32 = 126;
pub const VK_F16: u32 = 127;
pub const VK_F17: u32 = 128;
pub const VK_F18: u32 = 129;
pub const VK_F19: u32 = 130;
pub const VK_F20: u32 = 131;
pub const VK_F21: u32 = 132;
pub const VK_F22: u32 = 133;
pub const VK_F23: u32 = 134;
pub const VK_F24: u32 = 135;
pub const VK_NUMLOCK: u32 = 144;
pub const VK_SCROLL: u32 = 145;
pub const VK_OEM_NEC_EQUAL: u32 = 146;
pub const VK_OEM_FJ_JISHO: u32 = 146;
pub const VK_OEM_FJ_MASSHOU: u32 = 147;
pub const VK_OEM_FJ_TOUROKU: u32 = 148;
pub const VK_OEM_FJ_LOYA: u32 = 149;
pub const VK_OEM_FJ_ROYA: u32 = 150;
pub const VK_LSHIFT: u32 = 160;
pub const VK_RSHIFT: u32 = 161;
pub const VK_LCONTROL: u32 = 162;
pub const VK_RCONTROL: u32 = 163;
pub const VK_LMENU: u32 = 164;
pub const VK_RMENU: u32 = 165;
pub const VK_BROWSER_BACK: u32 = 166;
pub const VK_BROWSER_FORWARD: u32 = 167;
pub const VK_BROWSER_REFRESH: u32 = 168;
pub const VK_BROWSER_STOP: u32 = 169;
pub const VK_BROWSER_SEARCH: u32 = 170;
pub const VK_BROWSER_FAVORITES: u32 = 171;
pub const VK_BROWSER_HOME: u32 = 172;
pub const VK_VOLUME_MUTE: u32 = 173;
pub const VK_VOLUME_DOWN: u32 = 174;
pub const VK_VOLUME_UP: u32 = 175;
pub const VK_MEDIA_NEXT_TRACK: u32 = 176;
pub const VK_MEDIA_PREV_TRACK: u32 = 177;
pub const VK_MEDIA_STOP: u32 = 178;
pub const VK_MEDIA_PLAY_PAUSE: u32 = 179;
pub const VK_LAUNCH_MAIL: u32 = 180;
pub const VK_LAUNCH_MEDIA_SELECT: u32 = 181;
pub const VK_LAUNCH_APP1: u32 = 182;
pub const VK_LAUNCH_APP2: u32 = 183;
pub const VK_OEM_1: u32 = 186;
pub const VK_OEM_PLUS: u32 = 187;
pub const VK_OEM_COMMA: u32 = 188;
pub const VK_OEM_MINUS: u32 = 189;
pub const VK_OEM_PERIOD: u32 = 190;
pub const VK_OEM_2: u32 = 191;
pub const VK_OEM_3: u32 = 192;
pub const VK_OEM_4: u32 = 219;
pub const VK_OEM_5: u32 = 220;
pub const VK_OEM_6: u32 = 221;
pub const VK_OEM_7: u32 = 222;
pub const VK_OEM_8: u32 = 223;
pub const VK_OEM_AX: u32 = 225;
pub const VK_OEM_102: u32 = 226;
pub const VK_ICO_HELP: u32 = 227;
pub const VK_ICO_00: u32 = 228;
pub const VK_PROCESSKEY: u32 = 229;
pub const VK_ICO_CLEAR: u32 = 230;
pub const VK_PACKET: u32 = 231;
pub const VK_OEM_RESET: u32 = 233;
pub const VK_OEM_JUMP: u32 = 234;
pub const VK_OEM_PA1: u32 = 235;
pub const VK_OEM_PA2: u32 = 236;
pub const VK_OEM_PA3: u32 = 237;
pub const VK_OEM_WSCTRL: u32 = 238;
pub const VK_OEM_CUSEL: u32 = 239;
pub const VK_OEM_ATTN: u32 = 240;
pub const VK_OEM_FINISH: u32 = 241;
pub const VK_OEM_COPY: u32 = 242;
pub const VK_OEM_AUTO: u32 = 243;
pub const VK_OEM_ENLW: u32 = 244;
pub const VK_OEM_BACKTAB: u32 = 245;
pub const VK_ATTN: u32 = 246;
pub const VK_CRSEL: u32 = 247;
pub const VK_EXSEL: u32 = 248;
pub const VK_EREOF: u32 = 249;
pub const VK_PLAY: u32 = 250;
pub const VK_ZOOM: u32 = 251;
pub const VK_NONAME: u32 = 252;
pub const VK_PA1: u32 = 253;
pub const VK_OEM_CLEAR: u32 = 254;
pub const WH_MIN: i32 = -1;
pub const WH_MSGFILTER: i32 = -1;
pub const WH_JOURNALRECORD: u32 = 0;
pub const WH_JOURNALPLAYBACK: u32 = 1;
pub const WH_KEYBOARD: u32 = 2;
pub const WH_GETMESSAGE: u32 = 3;
pub const WH_CALLWNDPROC: u32 = 4;
pub const WH_CBT: u32 = 5;
pub const WH_SYSMSGFILTER: u32 = 6;
pub const WH_MOUSE: u32 = 7;
pub const WH_HARDWARE: u32 = 8;
pub const WH_DEBUG: u32 = 9;
pub const WH_SHELL: u32 = 10;
pub const WH_FOREGROUNDIDLE: u32 = 11;
pub const WH_CALLWNDPROCRET: u32 = 12;
pub const WH_KEYBOARD_LL: u32 = 13;
pub const WH_MOUSE_LL: u32 = 14;
pub const WH_MAX: u32 = 14;
pub const WH_MINHOOK: i32 = -1;
pub const WH_MAXHOOK: u32 = 14;
pub const HC_ACTION: u32 = 0;
pub const HC_GETNEXT: u32 = 1;
pub const HC_SKIP: u32 = 2;
pub const HC_NOREMOVE: u32 = 3;
pub const HC_NOREM: u32 = 3;
pub const HC_SYSMODALON: u32 = 4;
pub const HC_SYSMODALOFF: u32 = 5;
pub const HCBT_MOVESIZE: u32 = 0;
pub const HCBT_MINMAX: u32 = 1;
pub const HCBT_QS: u32 = 2;
pub const HCBT_CREATEWND: u32 = 3;
pub const HCBT_DESTROYWND: u32 = 4;
pub const HCBT_ACTIVATE: u32 = 5;
pub const HCBT_CLICKSKIPPED: u32 = 6;
pub const HCBT_KEYSKIPPED: u32 = 7;
pub const HCBT_SYSCOMMAND: u32 = 8;
pub const HCBT_SETFOCUS: u32 = 9;
pub const WTS_CONSOLE_CONNECT: u32 = 1;
pub const WTS_CONSOLE_DISCONNECT: u32 = 2;
pub const WTS_REMOTE_CONNECT: u32 = 3;
pub const WTS_REMOTE_DISCONNECT: u32 = 4;
pub const WTS_SESSION_LOGON: u32 = 5;
pub const WTS_SESSION_LOGOFF: u32 = 6;
pub const WTS_SESSION_LOCK: u32 = 7;
pub const WTS_SESSION_UNLOCK: u32 = 8;
pub const WTS_SESSION_REMOTE_CONTROL: u32 = 9;
pub const WTS_SESSION_CREATE: u32 = 10;
pub const WTS_SESSION_TERMINATE: u32 = 11;
pub const MSGF_DIALOGBOX: u32 = 0;
pub const MSGF_MESSAGEBOX: u32 = 1;
pub const MSGF_MENU: u32 = 2;
pub const MSGF_SCROLLBAR: u32 = 5;
pub const MSGF_NEXTWINDOW: u32 = 6;
pub const MSGF_MAX: u32 = 8;
pub const MSGF_USER: u32 = 4096;
pub const HSHELL_WINDOWCREATED: u32 = 1;
pub const HSHELL_WINDOWDESTROYED: u32 = 2;
pub const HSHELL_ACTIVATESHELLWINDOW: u32 = 3;
pub const HSHELL_WINDOWACTIVATED: u32 = 4;
pub const HSHELL_GETMINRECT: u32 = 5;
pub const HSHELL_REDRAW: u32 = 6;
pub const HSHELL_TASKMAN: u32 = 7;
pub const HSHELL_LANGUAGE: u32 = 8;
pub const HSHELL_SYSMENU: u32 = 9;
pub const HSHELL_ENDTASK: u32 = 10;
pub const HSHELL_ACCESSIBILITYSTATE: u32 = 11;
pub const HSHELL_APPCOMMAND: u32 = 12;
pub const HSHELL_WINDOWREPLACED: u32 = 13;
pub const HSHELL_WINDOWREPLACING: u32 = 14;
pub const HSHELL_HIGHBIT: u32 = 32768;
pub const HSHELL_FLASH: u32 = 32774;
pub const HSHELL_RUDEAPPACTIVATED: u32 = 32772;
pub const ACCESS_STICKYKEYS: u32 = 1;
pub const ACCESS_FILTERKEYS: u32 = 2;
pub const ACCESS_MOUSEKEYS: u32 = 3;
pub const APPCOMMAND_BROWSER_BACKWARD: u32 = 1;
pub const APPCOMMAND_BROWSER_FORWARD: u32 = 2;
pub const APPCOMMAND_BROWSER_REFRESH: u32 = 3;
pub const APPCOMMAND_BROWSER_STOP: u32 = 4;
pub const APPCOMMAND_BROWSER_SEARCH: u32 = 5;
pub const APPCOMMAND_BROWSER_FAVORITES: u32 = 6;
pub const APPCOMMAND_BROWSER_HOME: u32 = 7;
pub const APPCOMMAND_VOLUME_MUTE: u32 = 8;
pub const APPCOMMAND_VOLUME_DOWN: u32 = 9;
pub const APPCOMMAND_VOLUME_UP: u32 = 10;
pub const APPCOMMAND_MEDIA_NEXTTRACK: u32 = 11;
pub const APPCOMMAND_MEDIA_PREVIOUSTRACK: u32 = 12;
pub const APPCOMMAND_MEDIA_STOP: u32 = 13;
pub const APPCOMMAND_MEDIA_PLAY_PAUSE: u32 = 14;
pub const APPCOMMAND_LAUNCH_MAIL: u32 = 15;
pub const APPCOMMAND_LAUNCH_MEDIA_SELECT: u32 = 16;
pub const APPCOMMAND_LAUNCH_APP1: u32 = 17;
pub const APPCOMMAND_LAUNCH_APP2: u32 = 18;
pub const APPCOMMAND_BASS_DOWN: u32 = 19;
pub const APPCOMMAND_BASS_BOOST: u32 = 20;
pub const APPCOMMAND_BASS_UP: u32 = 21;
pub const APPCOMMAND_TREBLE_DOWN: u32 = 22;
pub const APPCOMMAND_TREBLE_UP: u32 = 23;
pub const APPCOMMAND_MICROPHONE_VOLUME_MUTE: u32 = 24;
pub const APPCOMMAND_MICROPHONE_VOLUME_DOWN: u32 = 25;
pub const APPCOMMAND_MICROPHONE_VOLUME_UP: u32 = 26;
pub const APPCOMMAND_HELP: u32 = 27;
pub const APPCOMMAND_FIND: u32 = 28;
pub const APPCOMMAND_NEW: u32 = 29;
pub const APPCOMMAND_OPEN: u32 = 30;
pub const APPCOMMAND_CLOSE: u32 = 31;
pub const APPCOMMAND_SAVE: u32 = 32;
pub const APPCOMMAND_PRINT: u32 = 33;
pub const APPCOMMAND_UNDO: u32 = 34;
pub const APPCOMMAND_REDO: u32 = 35;
pub const APPCOMMAND_COPY: u32 = 36;
pub const APPCOMMAND_CUT: u32 = 37;
pub const APPCOMMAND_PASTE: u32 = 38;
pub const APPCOMMAND_REPLY_TO_MAIL: u32 = 39;
pub const APPCOMMAND_FORWARD_MAIL: u32 = 40;
pub const APPCOMMAND_SEND_MAIL: u32 = 41;
pub const APPCOMMAND_SPELL_CHECK: u32 = 42;
pub const APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE: u32 = 43;
pub const APPCOMMAND_MIC_ON_OFF_TOGGLE: u32 = 44;
pub const APPCOMMAND_CORRECTION_LIST: u32 = 45;
pub const APPCOMMAND_MEDIA_PLAY: u32 = 46;
pub const APPCOMMAND_MEDIA_PAUSE: u32 = 47;
pub const APPCOMMAND_MEDIA_RECORD: u32 = 48;
pub const APPCOMMAND_MEDIA_FAST_FORWARD: u32 = 49;
pub const APPCOMMAND_MEDIA_REWIND: u32 = 50;
pub const APPCOMMAND_MEDIA_CHANNEL_UP: u32 = 51;
pub const APPCOMMAND_MEDIA_CHANNEL_DOWN: u32 = 52;
pub const FAPPCOMMAND_MOUSE: u32 = 32768;
pub const FAPPCOMMAND_KEY: u32 = 0;
pub const FAPPCOMMAND_OEM: u32 = 4096;
pub const FAPPCOMMAND_MASK: u32 = 61440;
pub const LLKHF_EXTENDED: u32 = 1;
pub const LLKHF_INJECTED: u32 = 16;
pub const LLKHF_ALTDOWN: u32 = 32;
pub const LLKHF_UP: u32 = 128;
pub const LLMHF_INJECTED: u32 = 1;
pub const HKL_PREV: u32 = 0;
pub const HKL_NEXT: u32 = 1;
pub const KLF_ACTIVATE: u32 = 1;
pub const KLF_SUBSTITUTE_OK: u32 = 2;
pub const KLF_REORDER: u32 = 8;
pub const KLF_REPLACELANG: u32 = 16;
pub const KLF_NOTELLSHELL: u32 = 128;
pub const KLF_SETFORPROCESS: u32 = 256;
pub const KLF_SHIFTLOCK: u32 = 65536;
pub const KLF_RESET: u32 = 1073741824;
pub const INPUTLANGCHANGE_SYSCHARSET: u32 = 1;
pub const INPUTLANGCHANGE_FORWARD: u32 = 2;
pub const INPUTLANGCHANGE_BACKWARD: u32 = 4;
pub const KL_NAMELENGTH: u32 = 9;
pub const GMMP_USE_DISPLAY_POINTS: u32 = 1;
pub const GMMP_USE_HIGH_RESOLUTION_POINTS: u32 = 2;
pub const CWF_CREATE_ONLY: u32 = 1;
pub const UOI_FLAGS: u32 = 1;
pub const UOI_NAME: u32 = 2;
pub const UOI_TYPE: u32 = 3;
pub const UOI_USER_SID: u32 = 4;
pub const GWL_WNDPROC: i32 = -4;
pub const GWL_HINSTANCE: i32 = -6;
pub const GWL_HWNDPARENT: i32 = -8;
pub const GWL_STYLE: i32 = -16;
pub const GWL_EXSTYLE: i32 = -20;
pub const GWL_USERDATA: i32 = -21;
pub const GWL_ID: i32 = -12;
pub const GWLP_WNDPROC: i32 = -4;
pub const GWLP_HINSTANCE: i32 = -6;
pub const GWLP_HWNDPARENT: i32 = -8;
pub const GWLP_USERDATA: i32 = -21;
pub const GWLP_ID: i32 = -12;
pub const GCL_MENUNAME: i32 = -8;
pub const GCL_HBRBACKGROUND: i32 = -10;
pub const GCL_HCURSOR: i32 = -12;
pub const GCL_HICON: i32 = -14;
pub const GCL_HMODULE: i32 = -16;
pub const GCL_CBWNDEXTRA: i32 = -18;
pub const GCL_CBCLSEXTRA: i32 = -20;
pub const GCL_WNDPROC: i32 = -24;
pub const GCL_STYLE: i32 = -26;
pub const GCW_ATOM: i32 = -32;
pub const GCL_HICONSM: i32 = -34;
pub const GCLP_MENUNAME: i32 = -8;
pub const GCLP_HBRBACKGROUND: i32 = -10;
pub const GCLP_HCURSOR: i32 = -12;
pub const GCLP_HICON: i32 = -14;
pub const GCLP_HMODULE: i32 = -16;
pub const GCLP_WNDPROC: i32 = -24;
pub const GCLP_HICONSM: i32 = -34;
pub const WM_NULL: u32 = 0;
pub const WM_CREATE: u32 = 1;
pub const WM_DESTROY: u32 = 2;
pub const WM_MOVE: u32 = 3;
pub const WM_SIZE: u32 = 5;
pub const WM_ACTIVATE: u32 = 6;
pub const WA_INACTIVE: u32 = 0;
pub const WA_ACTIVE: u32 = 1;
pub const WA_CLICKACTIVE: u32 = 2;
pub const WM_SETFOCUS: u32 = 7;
pub const WM_KILLFOCUS: u32 = 8;
pub const WM_ENABLE: u32 = 10;
pub const WM_SETREDRAW: u32 = 11;
pub const WM_SETTEXT: u32 = 12;
pub const WM_GETTEXT: u32 = 13;
pub const WM_GETTEXTLENGTH: u32 = 14;
pub const WM_PAINT: u32 = 15;
pub const WM_CLOSE: u32 = 16;
pub const WM_QUERYENDSESSION: u32 = 17;
pub const WM_QUERYOPEN: u32 = 19;
pub const WM_ENDSESSION: u32 = 22;
pub const WM_QUIT: u32 = 18;
pub const WM_ERASEBKGND: u32 = 20;
pub const WM_SYSCOLORCHANGE: u32 = 21;
pub const WM_SHOWWINDOW: u32 = 24;
pub const WM_WININICHANGE: u32 = 26;
pub const WM_SETTINGCHANGE: u32 = 26;
pub const WM_DEVMODECHANGE: u32 = 27;
pub const WM_ACTIVATEAPP: u32 = 28;
pub const WM_FONTCHANGE: u32 = 29;
pub const WM_TIMECHANGE: u32 = 30;
pub const WM_CANCELMODE: u32 = 31;
pub const WM_SETCURSOR: u32 = 32;
pub const WM_MOUSEACTIVATE: u32 = 33;
pub const WM_CHILDACTIVATE: u32 = 34;
pub const WM_QUEUESYNC: u32 = 35;
pub const WM_GETMINMAXINFO: u32 = 36;
pub const WM_PAINTICON: u32 = 38;
pub const WM_ICONERASEBKGND: u32 = 39;
pub const WM_NEXTDLGCTL: u32 = 40;
pub const WM_SPOOLERSTATUS: u32 = 42;
pub const WM_DRAWITEM: u32 = 43;
pub const WM_MEASUREITEM: u32 = 44;
pub const WM_DELETEITEM: u32 = 45;
pub const WM_VKEYTOITEM: u32 = 46;
pub const WM_CHARTOITEM: u32 = 47;
pub const WM_SETFONT: u32 = 48;
pub const WM_GETFONT: u32 = 49;
pub const WM_SETHOTKEY: u32 = 50;
pub const WM_GETHOTKEY: u32 = 51;
pub const WM_QUERYDRAGICON: u32 = 55;
pub const WM_COMPAREITEM: u32 = 57;
pub const WM_GETOBJECT: u32 = 61;
pub const WM_COMPACTING: u32 = 65;
pub const WM_COMMNOTIFY: u32 = 68;
pub const WM_WINDOWPOSCHANGING: u32 = 70;
pub const WM_WINDOWPOSCHANGED: u32 = 71;
pub const WM_POWER: u32 = 72;
pub const PWR_OK: u32 = 1;
pub const PWR_FAIL: i32 = -1;
pub const PWR_SUSPENDREQUEST: u32 = 1;
pub const PWR_SUSPENDRESUME: u32 = 2;
pub const PWR_CRITICALRESUME: u32 = 3;
pub const WM_COPYDATA: u32 = 74;
pub const WM_CANCELJOURNAL: u32 = 75;
pub const WM_NOTIFY: u32 = 78;
pub const WM_INPUTLANGCHANGEREQUEST: u32 = 80;
pub const WM_INPUTLANGCHANGE: u32 = 81;
pub const WM_TCARD: u32 = 82;
pub const WM_HELP: u32 = 83;
pub const WM_USERCHANGED: u32 = 84;
pub const WM_NOTIFYFORMAT: u32 = 85;
pub const NFR_ANSI: u32 = 1;
pub const NFR_UNICODE: u32 = 2;
pub const NF_QUERY: u32 = 3;
pub const NF_REQUERY: u32 = 4;
pub const WM_CONTEXTMENU: u32 = 123;
pub const WM_STYLECHANGING: u32 = 124;
pub const WM_STYLECHANGED: u32 = 125;
pub const WM_DISPLAYCHANGE: u32 = 126;
pub const WM_GETICON: u32 = 127;
pub const WM_SETICON: u32 = 128;
pub const WM_NCCREATE: u32 = 129;
pub const WM_NCDESTROY: u32 = 130;
pub const WM_NCCALCSIZE: u32 = 131;
pub const WM_NCHITTEST: u32 = 132;
pub const WM_NCPAINT: u32 = 133;
pub const WM_NCACTIVATE: u32 = 134;
pub const WM_GETDLGCODE: u32 = 135;
pub const WM_SYNCPAINT: u32 = 136;
pub const WM_NCMOUSEMOVE: u32 = 160;
pub const WM_NCLBUTTONDOWN: u32 = 161;
pub const WM_NCLBUTTONUP: u32 = 162;
pub const WM_NCLBUTTONDBLCLK: u32 = 163;
pub const WM_NCRBUTTONDOWN: u32 = 164;
pub const WM_NCRBUTTONUP: u32 = 165;
pub const WM_NCRBUTTONDBLCLK: u32 = 166;
pub const WM_NCMBUTTONDOWN: u32 = 167;
pub const WM_NCMBUTTONUP: u32 = 168;
pub const WM_NCMBUTTONDBLCLK: u32 = 169;
pub const WM_NCXBUTTONDOWN: u32 = 171;
pub const WM_NCXBUTTONUP: u32 = 172;
pub const WM_NCXBUTTONDBLCLK: u32 = 173;
pub const WM_INPUT_DEVICE_CHANGE: u32 = 254;
pub const WM_INPUT: u32 = 255;
pub const WM_KEYFIRST: u32 = 256;
pub const WM_KEYDOWN: u32 = 256;
pub const WM_KEYUP: u32 = 257;
pub const WM_CHAR: u32 = 258;
pub const WM_DEADCHAR: u32 = 259;
pub const WM_SYSKEYDOWN: u32 = 260;
pub const WM_SYSKEYUP: u32 = 261;
pub const WM_SYSCHAR: u32 = 262;
pub const WM_SYSDEADCHAR: u32 = 263;
pub const WM_UNICHAR: u32 = 265;
pub const WM_KEYLAST: u32 = 265;
pub const UNICODE_NOCHAR: u32 = 65535;
pub const WM_IME_STARTCOMPOSITION: u32 = 269;
pub const WM_IME_ENDCOMPOSITION: u32 = 270;
pub const WM_IME_COMPOSITION: u32 = 271;
pub const WM_IME_KEYLAST: u32 = 271;
pub const WM_INITDIALOG: u32 = 272;
pub const WM_COMMAND: u32 = 273;
pub const WM_SYSCOMMAND: u32 = 274;
pub const WM_TIMER: u32 = 275;
pub const WM_HSCROLL: u32 = 276;
pub const WM_VSCROLL: u32 = 277;
pub const WM_INITMENU: u32 = 278;
pub const WM_INITMENUPOPUP: u32 = 279;
pub const WM_MENUSELECT: u32 = 287;
pub const WM_MENUCHAR: u32 = 288;
pub const WM_ENTERIDLE: u32 = 289;
pub const WM_MENURBUTTONUP: u32 = 290;
pub const WM_MENUDRAG: u32 = 291;
pub const WM_MENUGETOBJECT: u32 = 292;
pub const WM_UNINITMENUPOPUP: u32 = 293;
pub const WM_MENUCOMMAND: u32 = 294;
pub const WM_CHANGEUISTATE: u32 = 295;
pub const WM_UPDATEUISTATE: u32 = 296;
pub const WM_QUERYUISTATE: u32 = 297;
pub const UIS_SET: u32 = 1;
pub const UIS_CLEAR: u32 = 2;
pub const UIS_INITIALIZE: u32 = 3;
pub const UISF_HIDEFOCUS: u32 = 1;
pub const UISF_HIDEACCEL: u32 = 2;
pub const UISF_ACTIVE: u32 = 4;
pub const WM_CTLCOLORMSGBOX: u32 = 306;
pub const WM_CTLCOLOREDIT: u32 = 307;
pub const WM_CTLCOLORLISTBOX: u32 = 308;
pub const WM_CTLCOLORBTN: u32 = 309;
pub const WM_CTLCOLORDLG: u32 = 310;
pub const WM_CTLCOLORSCROLLBAR: u32 = 311;
pub const WM_CTLCOLORSTATIC: u32 = 312;
pub const MN_GETHMENU: u32 = 481;
pub const WM_MOUSEFIRST: u32 = 512;
pub const WM_MOUSEMOVE: u32 = 512;
pub const WM_LBUTTONDOWN: u32 = 513;
pub const WM_LBUTTONUP: u32 = 514;
pub const WM_LBUTTONDBLCLK: u32 = 515;
pub const WM_RBUTTONDOWN: u32 = 516;
pub const WM_RBUTTONUP: u32 = 517;
pub const WM_RBUTTONDBLCLK: u32 = 518;
pub const WM_MBUTTONDOWN: u32 = 519;
pub const WM_MBUTTONUP: u32 = 520;
pub const WM_MBUTTONDBLCLK: u32 = 521;
pub const WM_MOUSEWHEEL: u32 = 522;
pub const WM_XBUTTONDOWN: u32 = 523;
pub const WM_XBUTTONUP: u32 = 524;
pub const WM_XBUTTONDBLCLK: u32 = 525;
pub const WM_MOUSELAST: u32 = 525;
pub const WHEEL_DELTA: u32 = 120;
pub const WHEEL_PAGESCROLL: u32 = 4294967295;
pub const XBUTTON1: u32 = 1;
pub const XBUTTON2: u32 = 2;
pub const WM_PARENTNOTIFY: u32 = 528;
pub const WM_ENTERMENULOOP: u32 = 529;
pub const WM_EXITMENULOOP: u32 = 530;
pub const WM_NEXTMENU: u32 = 531;
pub const WM_SIZING: u32 = 532;
pub const WM_CAPTURECHANGED: u32 = 533;
pub const WM_MOVING: u32 = 534;
pub const WM_POWERBROADCAST: u32 = 536;
pub const PBT_APMQUERYSUSPEND: u32 = 0;
pub const PBT_APMQUERYSTANDBY: u32 = 1;
pub const PBT_APMQUERYSUSPENDFAILED: u32 = 2;
pub const PBT_APMQUERYSTANDBYFAILED: u32 = 3;
pub const PBT_APMSUSPEND: u32 = 4;
pub const PBT_APMSTANDBY: u32 = 5;
pub const PBT_APMRESUMECRITICAL: u32 = 6;
pub const PBT_APMRESUMESUSPEND: u32 = 7;
pub const PBT_APMRESUMESTANDBY: u32 = 8;
pub const PBTF_APMRESUMEFROMFAILURE: u32 = 1;
pub const PBT_APMBATTERYLOW: u32 = 9;
pub const PBT_APMPOWERSTATUSCHANGE: u32 = 10;
pub const PBT_APMOEMEVENT: u32 = 11;
pub const PBT_APMRESUMEAUTOMATIC: u32 = 18;
pub const PBT_POWERSETTINGCHANGE: u32 = 32787;
pub const WM_DEVICECHANGE: u32 = 537;
pub const WM_MDICREATE: u32 = 544;
pub const WM_MDIDESTROY: u32 = 545;
pub const WM_MDIACTIVATE: u32 = 546;
pub const WM_MDIRESTORE: u32 = 547;
pub const WM_MDINEXT: u32 = 548;
pub const WM_MDIMAXIMIZE: u32 = 549;
pub const WM_MDITILE: u32 = 550;
pub const WM_MDICASCADE: u32 = 551;
pub const WM_MDIICONARRANGE: u32 = 552;
pub const WM_MDIGETACTIVE: u32 = 553;
pub const WM_MDISETMENU: u32 = 560;
pub const WM_ENTERSIZEMOVE: u32 = 561;
pub const WM_EXITSIZEMOVE: u32 = 562;
pub const WM_DROPFILES: u32 = 563;
pub const WM_MDIREFRESHMENU: u32 = 564;
pub const WM_IME_SETCONTEXT: u32 = 641;
pub const WM_IME_NOTIFY: u32 = 642;
pub const WM_IME_CONTROL: u32 = 643;
pub const WM_IME_COMPOSITIONFULL: u32 = 644;
pub const WM_IME_SELECT: u32 = 645;
pub const WM_IME_CHAR: u32 = 646;
pub const WM_IME_REQUEST: u32 = 648;
pub const WM_IME_KEYDOWN: u32 = 656;
pub const WM_IME_KEYUP: u32 = 657;
pub const WM_MOUSEHOVER: u32 = 673;
pub const WM_MOUSELEAVE: u32 = 675;
pub const WM_NCMOUSEHOVER: u32 = 672;
pub const WM_NCMOUSELEAVE: u32 = 674;
pub const WM_WTSSESSION_CHANGE: u32 = 689;
pub const WM_TABLET_FIRST: u32 = 704;
pub const WM_TABLET_LAST: u32 = 735;
pub const WM_CUT: u32 = 768;
pub const WM_COPY: u32 = 769;
pub const WM_PASTE: u32 = 770;
pub const WM_CLEAR: u32 = 771;
pub const WM_UNDO: u32 = 772;
pub const WM_RENDERFORMAT: u32 = 773;
pub const WM_RENDERALLFORMATS: u32 = 774;
pub const WM_DESTROYCLIPBOARD: u32 = 775;
pub const WM_DRAWCLIPBOARD: u32 = 776;
pub const WM_PAINTCLIPBOARD: u32 = 777;
pub const WM_VSCROLLCLIPBOARD: u32 = 778;
pub const WM_SIZECLIPBOARD: u32 = 779;
pub const WM_ASKCBFORMATNAME: u32 = 780;
pub const WM_CHANGECBCHAIN: u32 = 781;
pub const WM_HSCROLLCLIPBOARD: u32 = 782;
pub const WM_QUERYNEWPALETTE: u32 = 783;
pub const WM_PALETTEISCHANGING: u32 = 784;
pub const WM_PALETTECHANGED: u32 = 785;
pub const WM_HOTKEY: u32 = 786;
pub const WM_PRINT: u32 = 791;
pub const WM_PRINTCLIENT: u32 = 792;
pub const WM_APPCOMMAND: u32 = 793;
pub const WM_THEMECHANGED: u32 = 794;
pub const WM_CLIPBOARDUPDATE: u32 = 797;
pub const WM_HANDHELDFIRST: u32 = 856;
pub const WM_HANDHELDLAST: u32 = 863;
pub const WM_AFXFIRST: u32 = 864;
pub const WM_AFXLAST: u32 = 895;
pub const WM_PENWINFIRST: u32 = 896;
pub const WM_PENWINLAST: u32 = 911;
pub const WM_APP: u32 = 32768;
pub const WM_USER: u32 = 1024;
pub const WMSZ_LEFT: u32 = 1;
pub const WMSZ_RIGHT: u32 = 2;
pub const WMSZ_TOP: u32 = 3;
pub const WMSZ_TOPLEFT: u32 = 4;
pub const WMSZ_TOPRIGHT: u32 = 5;
pub const WMSZ_BOTTOM: u32 = 6;
pub const WMSZ_BOTTOMLEFT: u32 = 7;
pub const WMSZ_BOTTOMRIGHT: u32 = 8;
pub const HTERROR: i32 = -2;
pub const HTTRANSPARENT: i32 = -1;
pub const HTNOWHERE: u32 = 0;
pub const HTCLIENT: u32 = 1;
pub const HTCAPTION: u32 = 2;
pub const HTSYSMENU: u32 = 3;
pub const HTGROWBOX: u32 = 4;
pub const HTSIZE: u32 = 4;
pub const HTMENU: u32 = 5;
pub const HTHSCROLL: u32 = 6;
pub const HTVSCROLL: u32 = 7;
pub const HTMINBUTTON: u32 = 8;
pub const HTMAXBUTTON: u32 = 9;
pub const HTLEFT: u32 = 10;
pub const HTRIGHT: u32 = 11;
pub const HTTOP: u32 = 12;
pub const HTTOPLEFT: u32 = 13;
pub const HTTOPRIGHT: u32 = 14;
pub const HTBOTTOM: u32 = 15;
pub const HTBOTTOMLEFT: u32 = 16;
pub const HTBOTTOMRIGHT: u32 = 17;
pub const HTBORDER: u32 = 18;
pub const HTREDUCE: u32 = 8;
pub const HTZOOM: u32 = 9;
pub const HTSIZEFIRST: u32 = 10;
pub const HTSIZELAST: u32 = 17;
pub const HTOBJECT: u32 = 19;
pub const HTCLOSE: u32 = 20;
pub const HTHELP: u32 = 21;
pub const SMTO_NORMAL: u32 = 0;
pub const SMTO_BLOCK: u32 = 1;
pub const SMTO_ABORTIFHUNG: u32 = 2;
pub const SMTO_NOTIMEOUTIFNOTHUNG: u32 = 8;
pub const MA_ACTIVATE: u32 = 1;
pub const MA_ACTIVATEANDEAT: u32 = 2;
pub const MA_NOACTIVATE: u32 = 3;
pub const MA_NOACTIVATEANDEAT: u32 = 4;
pub const ICON_SMALL: u32 = 0;
pub const ICON_BIG: u32 = 1;
pub const ICON_SMALL2: u32 = 2;
pub const SIZE_RESTORED: u32 = 0;
pub const SIZE_MINIMIZED: u32 = 1;
pub const SIZE_MAXIMIZED: u32 = 2;
pub const SIZE_MAXSHOW: u32 = 3;
pub const SIZE_MAXHIDE: u32 = 4;
pub const SIZENORMAL: u32 = 0;
pub const SIZEICONIC: u32 = 1;
pub const SIZEFULLSCREEN: u32 = 2;
pub const SIZEZOOMSHOW: u32 = 3;
pub const SIZEZOOMHIDE: u32 = 4;
pub const WVR_ALIGNTOP: u32 = 16;
pub const WVR_ALIGNLEFT: u32 = 32;
pub const WVR_ALIGNBOTTOM: u32 = 64;
pub const WVR_ALIGNRIGHT: u32 = 128;
pub const WVR_HREDRAW: u32 = 256;
pub const WVR_VREDRAW: u32 = 512;
pub const WVR_REDRAW: u32 = 768;
pub const WVR_VALIDRECTS: u32 = 1024;
pub const MK_LBUTTON: u32 = 1;
pub const MK_RBUTTON: u32 = 2;
pub const MK_SHIFT: u32 = 4;
pub const MK_CONTROL: u32 = 8;
pub const MK_MBUTTON: u32 = 16;
pub const MK_XBUTTON1: u32 = 32;
pub const MK_XBUTTON2: u32 = 64;
pub const TME_HOVER: u32 = 1;
pub const TME_LEAVE: u32 = 2;
pub const TME_NONCLIENT: u32 = 16;
pub const TME_QUERY: u32 = 1073741824;
pub const TME_CANCEL: u32 = 2147483648;
pub const HOVER_DEFAULT: u32 = 4294967295;
pub const WS_EX_LAYERED: u32 = 524288;
pub const CS_VREDRAW: u32 = 1;
pub const CS_HREDRAW: u32 = 2;
pub const CS_DBLCLKS: u32 = 8;
pub const CS_OWNDC: u32 = 32;
pub const CS_CLASSDC: u32 = 64;
pub const CS_PARENTDC: u32 = 128;
pub const CS_NOCLOSE: u32 = 512;
pub const CS_SAVEBITS: u32 = 2048;
pub const CS_BYTEALIGNCLIENT: u32 = 4096;
pub const CS_BYTEALIGNWINDOW: u32 = 8192;
pub const CS_GLOBALCLASS: u32 = 16384;
pub const CS_IME: u32 = 65536;
pub const CS_DROPSHADOW: u32 = 131072;
pub const BDR_RAISEDOUTER: u32 = 1;
pub const BDR_SUNKENOUTER: u32 = 2;
pub const BDR_RAISEDINNER: u32 = 4;
pub const BDR_SUNKENINNER: u32 = 8;
pub const BDR_OUTER: u32 = 3;
pub const BDR_INNER: u32 = 12;
pub const BDR_RAISED: u32 = 5;
pub const BDR_SUNKEN: u32 = 10;
pub const EDGE_RAISED: u32 = 5;
pub const EDGE_SUNKEN: u32 = 10;
pub const EDGE_ETCHED: u32 = 6;
pub const EDGE_BUMP: u32 = 9;
pub const BF_LEFT: u32 = 1;
pub const BF_TOP: u32 = 2;
pub const BF_RIGHT: u32 = 4;
pub const BF_BOTTOM: u32 = 8;
pub const BF_TOPLEFT: u32 = 3;
pub const BF_TOPRIGHT: u32 = 6;
pub const BF_BOTTOMLEFT: u32 = 9;
pub const BF_BOTTOMRIGHT: u32 = 12;
pub const BF_RECT: u32 = 15;
pub const BF_DIAGONAL: u32 = 16;
pub const BF_DIAGONAL_ENDTOPRIGHT: u32 = 22;
pub const BF_DIAGONAL_ENDTOPLEFT: u32 = 19;
pub const BF_DIAGONAL_ENDBOTTOMLEFT: u32 = 25;
pub const BF_DIAGONAL_ENDBOTTOMRIGHT: u32 = 28;
pub const BF_MIDDLE: u32 = 2048;
pub const BF_SOFT: u32 = 4096;
pub const BF_ADJUST: u32 = 8192;
pub const BF_FLAT: u32 = 16384;
pub const BF_MONO: u32 = 32768;
pub const DFC_CAPTION: u32 = 1;
pub const DFC_MENU: u32 = 2;
pub const DFC_SCROLL: u32 = 3;
pub const DFC_BUTTON: u32 = 4;
pub const DFC_POPUPMENU: u32 = 5;
pub const DFCS_CAPTIONCLOSE: u32 = 0;
pub const DFCS_CAPTIONMIN: u32 = 1;
pub const DFCS_CAPTIONMAX: u32 = 2;
pub const DFCS_CAPTIONRESTORE: u32 = 3;
pub const DFCS_CAPTIONHELP: u32 = 4;
pub const DFCS_MENUARROW: u32 = 0;
pub const DFCS_MENUCHECK: u32 = 1;
pub const DFCS_MENUBULLET: u32 = 2;
pub const DFCS_MENUARROWRIGHT: u32 = 4;
pub const DFCS_SCROLLUP: u32 = 0;
pub const DFCS_SCROLLDOWN: u32 = 1;
pub const DFCS_SCROLLLEFT: u32 = 2;
pub const DFCS_SCROLLRIGHT: u32 = 3;
pub const DFCS_SCROLLCOMBOBOX: u32 = 5;
pub const DFCS_SCROLLSIZEGRIP: u32 = 8;
pub const DFCS_SCROLLSIZEGRIPRIGHT: u32 = 16;
pub const DFCS_BUTTONCHECK: u32 = 0;
pub const DFCS_BUTTONRADIOIMAGE: u32 = 1;
pub const DFCS_BUTTONRADIOMASK: u32 = 2;
pub const DFCS_BUTTONRADIO: u32 = 4;
pub const DFCS_BUTTON3STATE: u32 = 8;
pub const DFCS_BUTTONPUSH: u32 = 16;
pub const DFCS_INACTIVE: u32 = 256;
pub const DFCS_PUSHED: u32 = 512;
pub const DFCS_CHECKED: u32 = 1024;
pub const DFCS_TRANSPARENT: u32 = 2048;
pub const DFCS_HOT: u32 = 4096;
pub const DFCS_ADJUSTRECT: u32 = 8192;
pub const DFCS_FLAT: u32 = 16384;
pub const DFCS_MONO: u32 = 32768;
pub const DC_ACTIVE: u32 = 1;
pub const DC_SMALLCAP: u32 = 2;
pub const DC_ICON: u32 = 4;
pub const DC_TEXT: u32 = 8;
pub const DC_INBUTTON: u32 = 16;
pub const DC_GRADIENT: u32 = 32;
pub const DC_BUTTONS: u32 = 4096;
pub const IDANI_OPEN: u32 = 1;
pub const IDANI_CAPTION: u32 = 3;
pub const CF_TEXT: u32 = 1;
pub const CF_BITMAP: u32 = 2;
pub const CF_METAFILEPICT: u32 = 3;
pub const CF_SYLK: u32 = 4;
pub const CF_DIF: u32 = 5;
pub const CF_TIFF: u32 = 6;
pub const CF_OEMTEXT: u32 = 7;
pub const CF_DIB: u32 = 8;
pub const CF_PALETTE: u32 = 9;
pub const CF_PENDATA: u32 = 10;
pub const CF_RIFF: u32 = 11;
pub const CF_WAVE: u32 = 12;
pub const CF_UNICODETEXT: u32 = 13;
pub const CF_ENHMETAFILE: u32 = 14;
pub const CF_HDROP: u32 = 15;
pub const CF_LOCALE: u32 = 16;
pub const CF_DIBV5: u32 = 17;
pub const CF_MAX: u32 = 18;
pub const CF_OWNERDISPLAY: u32 = 128;
pub const CF_DSPTEXT: u32 = 129;
pub const CF_DSPBITMAP: u32 = 130;
pub const CF_DSPMETAFILEPICT: u32 = 131;
pub const CF_DSPENHMETAFILE: u32 = 142;
pub const CF_PRIVATEFIRST: u32 = 512;
pub const CF_PRIVATELAST: u32 = 767;
pub const CF_GDIOBJFIRST: u32 = 768;
pub const CF_GDIOBJLAST: u32 = 1023;
pub const FVIRTKEY: u32 = 1;
pub const FNOINVERT: u32 = 2;
pub const FSHIFT: u32 = 4;
pub const FCONTROL: u32 = 8;
pub const FALT: u32 = 16;
pub const WPF_SETMINPOSITION: u32 = 1;
pub const WPF_RESTORETOMAXIMIZED: u32 = 2;
pub const WPF_ASYNCWINDOWPLACEMENT: u32 = 4;
pub const ODT_MENU: u32 = 1;
pub const ODT_LISTBOX: u32 = 2;
pub const ODT_COMBOBOX: u32 = 3;
pub const ODT_BUTTON: u32 = 4;
pub const ODT_STATIC: u32 = 5;
pub const ODA_DRAWENTIRE: u32 = 1;
pub const ODA_SELECT: u32 = 2;
pub const ODA_FOCUS: u32 = 4;
pub const ODS_SELECTED: u32 = 1;
pub const ODS_GRAYED: u32 = 2;
pub const ODS_DISABLED: u32 = 4;
pub const ODS_CHECKED: u32 = 8;
pub const ODS_FOCUS: u32 = 16;
pub const ODS_DEFAULT: u32 = 32;
pub const ODS_COMBOBOXEDIT: u32 = 4096;
pub const ODS_HOTLIGHT: u32 = 64;
pub const ODS_INACTIVE: u32 = 128;
pub const ODS_NOACCEL: u32 = 256;
pub const ODS_NOFOCUSRECT: u32 = 512;
pub const PM_NOREMOVE: u32 = 0;
pub const PM_REMOVE: u32 = 1;
pub const PM_NOYIELD: u32 = 2;
pub const MOD_ALT: u32 = 1;
pub const MOD_CONTROL: u32 = 2;
pub const MOD_SHIFT: u32 = 4;
pub const MOD_WIN: u32 = 8;
pub const IDHOT_SNAPWINDOW: i32 = -1;
pub const IDHOT_SNAPDESKTOP: i32 = -2;
pub const ENDSESSION_CLOSEAPP: u32 = 1;
pub const ENDSESSION_CRITICAL: u32 = 1073741824;
pub const ENDSESSION_LOGOFF: u32 = 2147483648;
pub const EWX_LOGOFF: u32 = 0;
pub const EWX_SHUTDOWN: u32 = 1;
pub const EWX_REBOOT: u32 = 2;
pub const EWX_FORCE: u32 = 4;
pub const EWX_POWEROFF: u32 = 8;
pub const EWX_FORCEIFHUNG: u32 = 16;
pub const EWX_QUICKRESOLVE: u32 = 32;
pub const EWX_HYBRID_SHUTDOWN: u32 = 4194304;
pub const EWX_BOOTOPTIONS: u32 = 16777216;
pub const BSM_ALLCOMPONENTS: u32 = 0;
pub const BSM_VXDS: u32 = 1;
pub const BSM_NETDRIVER: u32 = 2;
pub const BSM_INSTALLABLEDRIVERS: u32 = 4;
pub const BSM_APPLICATIONS: u32 = 8;
pub const BSM_ALLDESKTOPS: u32 = 16;
pub const BSF_QUERY: u32 = 1;
pub const BSF_IGNORECURRENTTASK: u32 = 2;
pub const BSF_FLUSHDISK: u32 = 4;
pub const BSF_NOHANG: u32 = 8;
pub const BSF_POSTMESSAGE: u32 = 16;
pub const BSF_FORCEIFHUNG: u32 = 32;
pub const BSF_NOTIMEOUTIFNOTHUNG: u32 = 64;
pub const BSF_ALLOWSFW: u32 = 128;
pub const BSF_SENDNOTIFYMESSAGE: u32 = 256;
pub const BSF_RETURNHDESK: u32 = 512;
pub const BSF_LUID: u32 = 1024;
pub const BROADCAST_QUERY_DENY: u32 = 1112363332;
pub const DEVICE_NOTIFY_WINDOW_HANDLE: u32 = 0;
pub const DEVICE_NOTIFY_SERVICE_HANDLE: u32 = 1;
pub const DEVICE_NOTIFY_ALL_INTERFACE_CLASSES: u32 = 4;
pub const ISMEX_NOSEND: u32 = 0;
pub const ISMEX_SEND: u32 = 1;
pub const ISMEX_NOTIFY: u32 = 2;
pub const ISMEX_CALLBACK: u32 = 4;
pub const ISMEX_REPLIED: u32 = 8;
pub const PW_CLIENTONLY: u32 = 1;
pub const LWA_COLORKEY: u32 = 1;
pub const LWA_ALPHA: u32 = 2;
pub const ULW_COLORKEY: u32 = 1;
pub const ULW_ALPHA: u32 = 2;
pub const ULW_OPAQUE: u32 = 4;
pub const ULW_EX_NORESIZE: u32 = 8;
pub const FLASHW_STOP: u32 = 0;
pub const FLASHW_CAPTION: u32 = 1;
pub const FLASHW_TRAY: u32 = 2;
pub const FLASHW_ALL: u32 = 3;
pub const FLASHW_TIMER: u32 = 4;
pub const FLASHW_TIMERNOFG: u32 = 12;
pub const SWP_NOSIZE: u32 = 1;
pub const SWP_NOMOVE: u32 = 2;
pub const SWP_NOZORDER: u32 = 4;
pub const SWP_NOREDRAW: u32 = 8;
pub const SWP_NOACTIVATE: u32 = 16;
pub const SWP_FRAMECHANGED: u32 = 32;
pub const SWP_SHOWWINDOW: u32 = 64;
pub const SWP_HIDEWINDOW: u32 = 128;
pub const SWP_NOCOPYBITS: u32 = 256;
pub const SWP_NOOWNERZORDER: u32 = 512;
pub const SWP_NOSENDCHANGING: u32 = 1024;
pub const SWP_DRAWFRAME: u32 = 32;
pub const SWP_NOREPOSITION: u32 = 512;
pub const SWP_DEFERERASE: u32 = 8192;
pub const SWP_ASYNCWINDOWPOS: u32 = 16384;
pub const DLGWINDOWEXTRA: u32 = 30;
pub const KEYEVENTF_EXTENDEDKEY: u32 = 1;
pub const KEYEVENTF_KEYUP: u32 = 2;
pub const KEYEVENTF_UNICODE: u32 = 4;
pub const KEYEVENTF_SCANCODE: u32 = 8;
pub const MOUSEEVENTF_MOVE: u32 = 1;
pub const MOUSEEVENTF_LEFTDOWN: u32 = 2;
pub const MOUSEEVENTF_LEFTUP: u32 = 4;
pub const MOUSEEVENTF_RIGHTDOWN: u32 = 8;
pub const MOUSEEVENTF_RIGHTUP: u32 = 16;
pub const MOUSEEVENTF_MIDDLEDOWN: u32 = 32;
pub const MOUSEEVENTF_MIDDLEUP: u32 = 64;
pub const MOUSEEVENTF_XDOWN: u32 = 128;
pub const MOUSEEVENTF_XUP: u32 = 256;
pub const MOUSEEVENTF_WHEEL: u32 = 2048;
pub const MOUSEEVENTF_VIRTUALDESK: u32 = 16384;
pub const MOUSEEVENTF_ABSOLUTE: u32 = 32768;
pub const INPUT_MOUSE: u32 = 0;
pub const INPUT_KEYBOARD: u32 = 1;
pub const INPUT_HARDWARE: u32 = 2;
pub const MAPVK_VK_TO_VSC: u32 = 0;
pub const MAPVK_VSC_TO_VK: u32 = 1;
pub const MAPVK_VK_TO_CHAR: u32 = 2;
pub const MAPVK_VSC_TO_VK_EX: u32 = 3;
pub const MWMO_WAITALL: u32 = 1;
pub const MWMO_ALERTABLE: u32 = 2;
pub const MWMO_INPUTAVAILABLE: u32 = 4;
pub const QS_KEY: u32 = 1;
pub const QS_MOUSEMOVE: u32 = 2;
pub const QS_MOUSEBUTTON: u32 = 4;
pub const QS_POSTMESSAGE: u32 = 8;
pub const QS_TIMER: u32 = 16;
pub const QS_PAINT: u32 = 32;
pub const QS_SENDMESSAGE: u32 = 64;
pub const QS_HOTKEY: u32 = 128;
pub const QS_ALLPOSTMESSAGE: u32 = 256;
pub const QS_RAWINPUT: u32 = 1024;
pub const QS_MOUSE: u32 = 6;
pub const QS_INPUT: u32 = 1031;
pub const QS_ALLEVENTS: u32 = 1215;
pub const QS_ALLINPUT: u32 = 1279;
pub const USER_TIMER_MAXIMUM: u32 = 2147483647;
pub const USER_TIMER_MINIMUM: u32 = 10;
pub const SM_CXSCREEN: u32 = 0;
pub const SM_CYSCREEN: u32 = 1;
pub const SM_CXVSCROLL: u32 = 2;
pub const SM_CYHSCROLL: u32 = 3;
pub const SM_CYCAPTION: u32 = 4;
pub const SM_CXBORDER: u32 = 5;
pub const SM_CYBORDER: u32 = 6;
pub const SM_CXDLGFRAME: u32 = 7;
pub const SM_CYDLGFRAME: u32 = 8;
pub const SM_CYVTHUMB: u32 = 9;
pub const SM_CXHTHUMB: u32 = 10;
pub const SM_CXICON: u32 = 11;
pub const SM_CYICON: u32 = 12;
pub const SM_CXCURSOR: u32 = 13;
pub const SM_CYCURSOR: u32 = 14;
pub const SM_CYMENU: u32 = 15;
pub const SM_CXFULLSCREEN: u32 = 16;
pub const SM_CYFULLSCREEN: u32 = 17;
pub const SM_CYKANJIWINDOW: u32 = 18;
pub const SM_MOUSEPRESENT: u32 = 19;
pub const SM_CYVSCROLL: u32 = 20;
pub const SM_CXHSCROLL: u32 = 21;
pub const SM_DEBUG: u32 = 22;
pub const SM_SWAPBUTTON: u32 = 23;
pub const SM_RESERVED1: u32 = 24;
pub const SM_RESERVED2: u32 = 25;
pub const SM_RESERVED3: u32 = 26;
pub const SM_RESERVED4: u32 = 27;
pub const SM_CXMIN: u32 = 28;
pub const SM_CYMIN: u32 = 29;
pub const SM_CXSIZE: u32 = 30;
pub const SM_CYSIZE: u32 = 31;
pub const SM_CXFRAME: u32 = 32;
pub const SM_CYFRAME: u32 = 33;
pub const SM_CXMINTRACK: u32 = 34;
pub const SM_CYMINTRACK: u32 = 35;
pub const SM_CXDOUBLECLK: u32 = 36;
pub const SM_CYDOUBLECLK: u32 = 37;
pub const SM_CXICONSPACING: u32 = 38;
pub const SM_CYICONSPACING: u32 = 39;
pub const SM_MENUDROPALIGNMENT: u32 = 40;
pub const SM_PENWINDOWS: u32 = 41;
pub const SM_DBCSENABLED: u32 = 42;
pub const SM_CMOUSEBUTTONS: u32 = 43;
pub const SM_CXFIXEDFRAME: u32 = 7;
pub const SM_CYFIXEDFRAME: u32 = 8;
pub const SM_CXSIZEFRAME: u32 = 32;
pub const SM_CYSIZEFRAME: u32 = 33;
pub const SM_SECURE: u32 = 44;
pub const SM_CXEDGE: u32 = 45;
pub const SM_CYEDGE: u32 = 46;
pub const SM_CXMINSPACING: u32 = 47;
pub const SM_CYMINSPACING: u32 = 48;
pub const SM_CXSMICON: u32 = 49;
pub const SM_CYSMICON: u32 = 50;
pub const SM_CYSMCAPTION: u32 = 51;
pub const SM_CXSMSIZE: u32 = 52;
pub const SM_CYSMSIZE: u32 = 53;
pub const SM_CXMENUSIZE: u32 = 54;
pub const SM_CYMENUSIZE: u32 = 55;
pub const SM_ARRANGE: u32 = 56;
pub const SM_CXMINIMIZED: u32 = 57;
pub const SM_CYMINIMIZED: u32 = 58;
pub const SM_CXMAXTRACK: u32 = 59;
pub const SM_CYMAXTRACK: u32 = 60;
pub const SM_CXMAXIMIZED: u32 = 61;
pub const SM_CYMAXIMIZED: u32 = 62;
pub const SM_NETWORK: u32 = 63;
pub const SM_CLEANBOOT: u32 = 67;
pub const SM_CXDRAG: u32 = 68;
pub const SM_CYDRAG: u32 = 69;
pub const SM_SHOWSOUNDS: u32 = 70;
pub const SM_CXMENUCHECK: u32 = 71;
pub const SM_CYMENUCHECK: u32 = 72;
pub const SM_SLOWMACHINE: u32 = 73;
pub const SM_MIDEASTENABLED: u32 = 74;
pub const SM_MOUSEWHEELPRESENT: u32 = 75;
pub const SM_XVIRTUALSCREEN: u32 = 76;
pub const SM_YVIRTUALSCREEN: u32 = 77;
pub const SM_CXVIRTUALSCREEN: u32 = 78;
pub const SM_CYVIRTUALSCREEN: u32 = 79;
pub const SM_CMONITORS: u32 = 80;
pub const SM_SAMEDISPLAYFORMAT: u32 = 81;
pub const SM_IMMENABLED: u32 = 82;
pub const SM_CXFOCUSBORDER: u32 = 83;
pub const SM_CYFOCUSBORDER: u32 = 84;
pub const SM_TABLETPC: u32 = 86;
pub const SM_MEDIACENTER: u32 = 87;
pub const SM_STARTER: u32 = 88;
pub const SM_SERVERR2: u32 = 89;
pub const SM_CMETRICS: u32 = 97;
pub const SM_REMOTESESSION: u32 = 4096;
pub const SM_SHUTTINGDOWN: u32 = 8192;
pub const SM_REMOTECONTROL: u32 = 8193;
pub const SM_CARETBLINKINGENABLED: u32 = 8194;
pub const PMB_ACTIVE: u32 = 1;
pub const MNC_IGNORE: u32 = 0;
pub const MNC_CLOSE: u32 = 1;
pub const MNC_EXECUTE: u32 = 2;
pub const MNC_SELECT: u32 = 3;
pub const MNS_NOCHECK: u32 = 2147483648;
pub const MNS_MODELESS: u32 = 1073741824;
pub const MNS_DRAGDROP: u32 = 536870912;
pub const MNS_AUTODISMISS: u32 = 268435456;
pub const MNS_NOTIFYBYPOS: u32 = 134217728;
pub const MNS_CHECKORBMP: u32 = 67108864;
pub const MIM_MAXHEIGHT: u32 = 1;
pub const MIM_BACKGROUND: u32 = 2;
pub const MIM_HELPID: u32 = 4;
pub const MIM_MENUDATA: u32 = 8;
pub const MIM_STYLE: u32 = 16;
pub const MIM_APPLYTOSUBMENUS: u32 = 2147483648;
pub const MND_CONTINUE: u32 = 0;
pub const MND_ENDMENU: u32 = 1;
pub const MNGOF_TOPGAP: u32 = 1;
pub const MNGOF_BOTTOMGAP: u32 = 2;
pub const MNGO_NOINTERFACE: u32 = 0;
pub const MNGO_NOERROR: u32 = 1;
pub const MIIM_STATE: u32 = 1;
pub const MIIM_ID: u32 = 2;
pub const MIIM_SUBMENU: u32 = 4;
pub const MIIM_CHECKMARKS: u32 = 8;
pub const MIIM_TYPE: u32 = 16;
pub const MIIM_DATA: u32 = 32;
pub const MIIM_STRING: u32 = 64;
pub const MIIM_BITMAP: u32 = 128;
pub const MIIM_FTYPE: u32 = 256;
pub const DOF_EXECUTABLE: u32 = 32769;
pub const DOF_DOCUMENT: u32 = 32770;
pub const DOF_DIRECTORY: u32 = 32771;
pub const DOF_MULTIPLE: u32 = 32772;
pub const DOF_PROGMAN: u32 = 1;
pub const DOF_SHELLDATA: u32 = 2;
pub const DT_TOP: u32 = 0;
pub const DT_LEFT: u32 = 0;
pub const DT_CENTER: u32 = 1;
pub const DT_RIGHT: u32 = 2;
pub const DT_VCENTER: u32 = 4;
pub const DT_BOTTOM: u32 = 8;
pub const DT_WORDBREAK: u32 = 16;
pub const DT_SINGLELINE: u32 = 32;
pub const DT_EXPANDTABS: u32 = 64;
pub const DT_TABSTOP: u32 = 128;
pub const DT_NOCLIP: u32 = 256;
pub const DT_EXTERNALLEADING: u32 = 512;
pub const DT_CALCRECT: u32 = 1024;
pub const DT_NOPREFIX: u32 = 2048;
pub const DT_INTERNAL: u32 = 4096;
pub const DT_EDITCONTROL: u32 = 8192;
pub const DT_PATH_ELLIPSIS: u32 = 16384;
pub const DT_END_ELLIPSIS: u32 = 32768;
pub const DT_MODIFYSTRING: u32 = 65536;
pub const DT_RTLREADING: u32 = 131072;
pub const DT_WORD_ELLIPSIS: u32 = 262144;
pub const DT_NOFULLWIDTHCHARBREAK: u32 = 524288;
pub const DT_HIDEPREFIX: u32 = 1048576;
pub const DT_PREFIXONLY: u32 = 2097152;
pub const DST_COMPLEX: u32 = 0;
pub const DST_TEXT: u32 = 1;
pub const DST_PREFIXTEXT: u32 = 2;
pub const DST_ICON: u32 = 3;
pub const DST_BITMAP: u32 = 4;
pub const DSS_NORMAL: u32 = 0;
pub const DSS_UNION: u32 = 16;
pub const DSS_DISABLED: u32 = 32;
pub const DSS_MONO: u32 = 128;
pub const DSS_HIDEPREFIX: u32 = 512;
pub const DSS_PREFIXONLY: u32 = 1024;
pub const DSS_RIGHT: u32 = 32768;
pub const LSFW_LOCK: u32 = 1;
pub const LSFW_UNLOCK: u32 = 2;
pub const RDW_INVALIDATE: u32 = 1;
pub const RDW_INTERNALPAINT: u32 = 2;
pub const RDW_ERASE: u32 = 4;
pub const RDW_VALIDATE: u32 = 8;
pub const RDW_NOINTERNALPAINT: u32 = 16;
pub const RDW_NOERASE: u32 = 32;
pub const RDW_NOCHILDREN: u32 = 64;
pub const RDW_ALLCHILDREN: u32 = 128;
pub const RDW_UPDATENOW: u32 = 256;
pub const RDW_ERASENOW: u32 = 512;
pub const RDW_FRAME: u32 = 1024;
pub const RDW_NOFRAME: u32 = 2048;
pub const SW_SCROLLCHILDREN: u32 = 1;
pub const SW_INVALIDATE: u32 = 2;
pub const SW_ERASE: u32 = 4;
pub const SW_SMOOTHSCROLL: u32 = 16;
pub const ESB_ENABLE_BOTH: u32 = 0;
pub const ESB_DISABLE_BOTH: u32 = 3;
pub const ESB_DISABLE_LEFT: u32 = 1;
pub const ESB_DISABLE_RIGHT: u32 = 2;
pub const ESB_DISABLE_UP: u32 = 1;
pub const ESB_DISABLE_DOWN: u32 = 2;
pub const ESB_DISABLE_LTUP: u32 = 1;
pub const ESB_DISABLE_RTDN: u32 = 2;
pub const HELPINFO_WINDOW: u32 = 1;
pub const HELPINFO_MENUITEM: u32 = 2;
pub const CWP_ALL: u32 = 0;
pub const CWP_SKIPINVISIBLE: u32 = 1;
pub const CWP_SKIPDISABLED: u32 = 2;
pub const CWP_SKIPTRANSPARENT: u32 = 4;
pub const CTLCOLOR_MSGBOX: u32 = 0;
pub const CTLCOLOR_EDIT: u32 = 1;
pub const CTLCOLOR_LISTBOX: u32 = 2;
pub const CTLCOLOR_BTN: u32 = 3;
pub const CTLCOLOR_DLG: u32 = 4;
pub const CTLCOLOR_SCROLLBAR: u32 = 5;
pub const CTLCOLOR_STATIC: u32 = 6;
pub const CTLCOLOR_MAX: u32 = 7;
pub const COLOR_SCROLLBAR: u32 = 0;
pub const COLOR_BACKGROUND: u32 = 1;
pub const COLOR_ACTIVECAPTION: u32 = 2;
pub const COLOR_INACTIVECAPTION: u32 = 3;
pub const COLOR_MENU: u32 = 4;
pub const COLOR_WINDOW: u32 = 5;
pub const COLOR_WINDOWFRAME: u32 = 6;
pub const COLOR_MENUTEXT: u32 = 7;
pub const COLOR_WINDOWTEXT: u32 = 8;
pub const COLOR_CAPTIONTEXT: u32 = 9;
pub const COLOR_ACTIVEBORDER: u32 = 10;
pub const COLOR_INACTIVEBORDER: u32 = 11;
pub const COLOR_APPWORKSPACE: u32 = 12;
pub const COLOR_HIGHLIGHT: u32 = 13;
pub const COLOR_HIGHLIGHTTEXT: u32 = 14;
pub const COLOR_BTNFACE: u32 = 15;
pub const COLOR_BTNSHADOW: u32 = 16;
pub const COLOR_GRAYTEXT: u32 = 17;
pub const COLOR_BTNTEXT: u32 = 18;
pub const COLOR_INACTIVECAPTIONTEXT: u32 = 19;
pub const COLOR_BTNHIGHLIGHT: u32 = 20;
pub const COLOR_3DDKSHADOW: u32 = 21;
pub const COLOR_3DLIGHT: u32 = 22;
pub const COLOR_INFOTEXT: u32 = 23;
pub const COLOR_INFOBK: u32 = 24;
pub const COLOR_HOTLIGHT: u32 = 26;
pub const COLOR_GRADIENTACTIVECAPTION: u32 = 27;
pub const COLOR_GRADIENTINACTIVECAPTION: u32 = 28;
pub const COLOR_MENUHILIGHT: u32 = 29;
pub const COLOR_MENUBAR: u32 = 30;
pub const COLOR_DESKTOP: u32 = 1;
pub const COLOR_3DFACE: u32 = 15;
pub const COLOR_3DSHADOW: u32 = 16;
pub const COLOR_3DHIGHLIGHT: u32 = 20;
pub const COLOR_3DHILIGHT: u32 = 20;
pub const COLOR_BTNHILIGHT: u32 = 20;
pub const GW_HWNDFIRST: u32 = 0;
pub const GW_HWNDLAST: u32 = 1;
pub const GW_HWNDNEXT: u32 = 2;
pub const GW_HWNDPREV: u32 = 3;
pub const GW_OWNER: u32 = 4;
pub const GW_CHILD: u32 = 5;
pub const GW_ENABLEDPOPUP: u32 = 6;
pub const GW_MAX: u32 = 6;
pub const SC_SIZE: u32 = 61440;
pub const SC_MOVE: u32 = 61456;
pub const SC_MINIMIZE: u32 = 61472;
pub const SC_MAXIMIZE: u32 = 61488;
pub const SC_NEXTWINDOW: u32 = 61504;
pub const SC_PREVWINDOW: u32 = 61520;
pub const SC_CLOSE: u32 = 61536;
pub const SC_VSCROLL: u32 = 61552;
pub const SC_HSCROLL: u32 = 61568;
pub const SC_MOUSEMENU: u32 = 61584;
pub const SC_KEYMENU: u32 = 61696;
pub const SC_ARRANGE: u32 = 61712;
pub const SC_RESTORE: u32 = 61728;
pub const SC_TASKLIST: u32 = 61744;
pub const SC_SCREENSAVE: u32 = 61760;
pub const SC_HOTKEY: u32 = 61776;
pub const SC_DEFAULT: u32 = 61792;
pub const SC_MONITORPOWER: u32 = 61808;
pub const SC_CONTEXTHELP: u32 = 61824;
pub const SC_SEPARATOR: u32 = 61455;
pub const SC_ICON: u32 = 61472;
pub const SC_ZOOM: u32 = 61488;
pub const IMAGE_BITMAP: u32 = 0;
pub const IMAGE_ICON: u32 = 1;
pub const IMAGE_CURSOR: u32 = 2;
pub const IMAGE_ENHMETAFILE: u32 = 3;
pub const LR_DEFAULTCOLOR: u32 = 0;
pub const LR_MONOCHROME: u32 = 1;
pub const LR_COLOR: u32 = 2;
pub const LR_COPYRETURNORG: u32 = 4;
pub const LR_COPYDELETEORG: u32 = 8;
pub const LR_LOADFROMFILE: u32 = 16;
pub const LR_LOADTRANSPARENT: u32 = 32;
pub const LR_DEFAULTSIZE: u32 = 64;
pub const LR_VGACOLOR: u32 = 128;
pub const LR_LOADMAP3DCOLORS: u32 = 4096;
pub const LR_CREATEDIBSECTION: u32 = 8192;
pub const LR_COPYFROMRESOURCE: u32 = 16384;
pub const LR_SHARED: u32 = 32768;
pub const DI_MASK: u32 = 1;
pub const DI_IMAGE: u32 = 2;
pub const DI_NORMAL: u32 = 3;
pub const DI_COMPAT: u32 = 4;
pub const DI_DEFAULTSIZE: u32 = 8;
pub const DI_NOMIRROR: u32 = 16;
pub const RES_ICON: u32 = 1;
pub const RES_CURSOR: u32 = 2;
pub const ORD_LANGDRIVER: u32 = 1;
pub const IDOK: u32 = 1;
pub const IDCANCEL: u32 = 2;
pub const IDABORT: u32 = 3;
pub const IDRETRY: u32 = 4;
pub const IDIGNORE: u32 = 5;
pub const IDYES: u32 = 6;
pub const IDNO: u32 = 7;
pub const IDCLOSE: u32 = 8;
pub const IDHELP: u32 = 9;
pub const IDTRYAGAIN: u32 = 10;
pub const IDCONTINUE: u32 = 11;
pub const IDTIMEOUT: u32 = 32000;
pub const EN_SETFOCUS: u32 = 256;
pub const EN_KILLFOCUS: u32 = 512;
pub const EN_CHANGE: u32 = 768;
pub const EN_UPDATE: u32 = 1024;
pub const EN_ERRSPACE: u32 = 1280;
pub const EN_MAXTEXT: u32 = 1281;
pub const EN_HSCROLL: u32 = 1537;
pub const EN_VSCROLL: u32 = 1538;
pub const EN_ALIGN_LTR_EC: u32 = 1792;
pub const EN_ALIGN_RTL_EC: u32 = 1793;
pub const EC_LEFTMARGIN: u32 = 1;
pub const EC_RIGHTMARGIN: u32 = 2;
pub const EC_USEFONTINFO: u32 = 65535;
pub const EMSIS_COMPOSITIONSTRING: u32 = 1;
pub const EIMES_GETCOMPSTRATONCE: u32 = 1;
pub const EIMES_CANCELCOMPSTRINFOCUS: u32 = 2;
pub const EIMES_COMPLETECOMPSTRKILLFOCUS: u32 = 4;
pub const EM_GETSEL: u32 = 176;
pub const EM_SETSEL: u32 = 177;
pub const EM_GETRECT: u32 = 178;
pub const EM_SETRECT: u32 = 179;
pub const EM_SETRECTNP: u32 = 180;
pub const EM_SCROLL: u32 = 181;
pub const EM_LINESCROLL: u32 = 182;
pub const EM_SCROLLCARET: u32 = 183;
pub const EM_GETMODIFY: u32 = 184;
pub const EM_SETMODIFY: u32 = 185;
pub const EM_GETLINECOUNT: u32 = 186;
pub const EM_LINEINDEX: u32 = 187;
pub const EM_SETHANDLE: u32 = 188;
pub const EM_GETHANDLE: u32 = 189;
pub const EM_GETTHUMB: u32 = 190;
pub const EM_LINELENGTH: u32 = 193;
pub const EM_REPLACESEL: u32 = 194;
pub const EM_GETLINE: u32 = 196;
pub const EM_LIMITTEXT: u32 = 197;
pub const EM_CANUNDO: u32 = 198;
pub const EM_UNDO: u32 = 199;
pub const EM_FMTLINES: u32 = 200;
pub const EM_LINEFROMCHAR: u32 = 201;
pub const EM_SETTABSTOPS: u32 = 203;
pub const EM_SETPASSWORDCHAR: u32 = 204;
pub const EM_EMPTYUNDOBUFFER: u32 = 205;
pub const EM_GETFIRSTVISIBLELINE: u32 = 206;
pub const EM_SETREADONLY: u32 = 207;
pub const EM_SETWORDBREAKPROC: u32 = 208;
pub const EM_GETWORDBREAKPROC: u32 = 209;
pub const EM_GETPASSWORDCHAR: u32 = 210;
pub const EM_SETMARGINS: u32 = 211;
pub const EM_GETMARGINS: u32 = 212;
pub const EM_SETLIMITTEXT: u32 = 197;
pub const EM_GETLIMITTEXT: u32 = 213;
pub const EM_POSFROMCHAR: u32 = 214;
pub const EM_CHARFROMPOS: u32 = 215;
pub const EM_SETIMESTATUS: u32 = 216;
pub const EM_GETIMESTATUS: u32 = 217;
pub const WB_LEFT: u32 = 0;
pub const WB_RIGHT: u32 = 1;
pub const WB_ISDELIMITER: u32 = 2;
pub const BN_CLICKED: u32 = 0;
pub const BN_PAINT: u32 = 1;
pub const BN_HILITE: u32 = 2;
pub const BN_UNHILITE: u32 = 3;
pub const BN_DISABLE: u32 = 4;
pub const BN_DOUBLECLICKED: u32 = 5;
pub const BN_PUSHED: u32 = 2;
pub const BN_UNPUSHED: u32 = 3;
pub const BN_DBLCLK: u32 = 5;
pub const BN_SETFOCUS: u32 = 6;
pub const BN_KILLFOCUS: u32 = 7;
pub const BM_GETCHECK: u32 = 240;
pub const BM_SETCHECK: u32 = 241;
pub const BM_GETSTATE: u32 = 242;
pub const BM_SETSTATE: u32 = 243;
pub const BM_SETSTYLE: u32 = 244;
pub const BM_CLICK: u32 = 245;
pub const BM_GETIMAGE: u32 = 246;
pub const BM_SETIMAGE: u32 = 247;
pub const BST_UNCHECKED: u32 = 0;
pub const BST_CHECKED: u32 = 1;
pub const BST_INDETERMINATE: u32 = 2;
pub const BST_PUSHED: u32 = 4;
pub const BST_FOCUS: u32 = 8;
pub const STM_SETICON: u32 = 368;
pub const STM_GETICON: u32 = 369;
pub const STM_SETIMAGE: u32 = 370;
pub const STM_GETIMAGE: u32 = 371;
pub const STN_CLICKED: u32 = 0;
pub const STN_DBLCLK: u32 = 1;
pub const STN_ENABLE: u32 = 2;
pub const STN_DISABLE: u32 = 3;
pub const STM_MSGMAX: u32 = 372;
pub const DWL_MSGRESULT: u32 = 0;
pub const DWL_DLGPROC: u32 = 4;
pub const DWL_USER: u32 = 8;
pub const DWLP_MSGRESULT: u32 = 0;
pub const DDL_READWRITE: u32 = 0;
pub const DDL_READONLY: u32 = 1;
pub const DDL_HIDDEN: u32 = 2;
pub const DDL_SYSTEM: u32 = 4;
pub const DDL_DIRECTORY: u32 = 16;
pub const DDL_ARCHIVE: u32 = 32;
pub const DDL_POSTMSGS: u32 = 8192;
pub const DDL_DRIVES: u32 = 16384;
pub const DDL_EXCLUSIVE: u32 = 32768;
pub const DM_GETDEFID: u32 = 1024;
pub const DM_SETDEFID: u32 = 1025;
pub const DM_REPOSITION: u32 = 1026;
pub const DC_HASDEFID: u32 = 21323;
pub const DLGC_WANTARROWS: u32 = 1;
pub const DLGC_WANTTAB: u32 = 2;
pub const DLGC_WANTALLKEYS: u32 = 4;
pub const DLGC_WANTMESSAGE: u32 = 4;
pub const DLGC_HASSETSEL: u32 = 8;
pub const DLGC_DEFPUSHBUTTON: u32 = 16;
pub const DLGC_UNDEFPUSHBUTTON: u32 = 32;
pub const DLGC_RADIOBUTTON: u32 = 64;
pub const DLGC_WANTCHARS: u32 = 128;
pub const DLGC_STATIC: u32 = 256;
pub const DLGC_BUTTON: u32 = 8192;
pub const LB_OKAY: u32 = 0;
pub const LB_ERR: i32 = -1;
pub const LB_ERRSPACE: i32 = -2;
pub const LBN_ERRSPACE: i32 = -2;
pub const LBN_SELCHANGE: u32 = 1;
pub const LBN_DBLCLK: u32 = 2;
pub const LBN_SELCANCEL: u32 = 3;
pub const LBN_SETFOCUS: u32 = 4;
pub const LBN_KILLFOCUS: u32 = 5;
pub const LB_ADDSTRING: u32 = 384;
pub const LB_INSERTSTRING: u32 = 385;
pub const LB_DELETESTRING: u32 = 386;
pub const LB_SELITEMRANGEEX: u32 = 387;
pub const LB_RESETCONTENT: u32 = 388;
pub const LB_SETSEL: u32 = 389;
pub const LB_SETCURSEL: u32 = 390;
pub const LB_GETSEL: u32 = 391;
pub const LB_GETCURSEL: u32 = 392;
pub const LB_GETTEXT: u32 = 393;
pub const LB_GETTEXTLEN: u32 = 394;
pub const LB_GETCOUNT: u32 = 395;
pub const LB_SELECTSTRING: u32 = 396;
pub const LB_DIR: u32 = 397;
pub const LB_GETTOPINDEX: u32 = 398;
pub const LB_FINDSTRING: u32 = 399;
pub const LB_GETSELCOUNT: u32 = 400;
pub const LB_GETSELITEMS: u32 = 401;
pub const LB_SETTABSTOPS: u32 = 402;
pub const LB_GETHORIZONTALEXTENT: u32 = 403;
pub const LB_SETHORIZONTALEXTENT: u32 = 404;
pub const LB_SETCOLUMNWIDTH: u32 = 405;
pub const LB_ADDFILE: u32 = 406;
pub const LB_SETTOPINDEX: u32 = 407;
pub const LB_GETITEMRECT: u32 = 408;
pub const LB_GETITEMDATA: u32 = 409;
pub const LB_SETITEMDATA: u32 = 410;
pub const LB_SELITEMRANGE: u32 = 411;
pub const LB_SETANCHORINDEX: u32 = 412;
pub const LB_GETANCHORINDEX: u32 = 413;
pub const LB_SETCARETINDEX: u32 = 414;
pub const LB_GETCARETINDEX: u32 = 415;
pub const LB_SETITEMHEIGHT: u32 = 416;
pub const LB_GETITEMHEIGHT: u32 = 417;
pub const LB_FINDSTRINGEXACT: u32 = 418;
pub const LB_SETLOCALE: u32 = 421;
pub const LB_GETLOCALE: u32 = 422;
pub const LB_SETCOUNT: u32 = 423;
pub const LB_INITSTORAGE: u32 = 424;
pub const LB_ITEMFROMPOINT: u32 = 425;
pub const LB_GETLISTBOXINFO: u32 = 434;
pub const LB_MSGMAX: u32 = 435;
pub const CB_OKAY: u32 = 0;
pub const CB_ERR: i32 = -1;
pub const CB_ERRSPACE: i32 = -2;
pub const CBN_ERRSPACE: i32 = -1;
pub const CBN_SELCHANGE: u32 = 1;
pub const CBN_DBLCLK: u32 = 2;
pub const CBN_SETFOCUS: u32 = 3;
pub const CBN_KILLFOCUS: u32 = 4;
pub const CBN_EDITCHANGE: u32 = 5;
pub const CBN_EDITUPDATE: u32 = 6;
pub const CBN_DROPDOWN: u32 = 7;
pub const CBN_CLOSEUP: u32 = 8;
pub const CBN_SELENDOK: u32 = 9;
pub const CBN_SELENDCANCEL: u32 = 10;
pub const CB_GETEDITSEL: u32 = 320;
pub const CB_LIMITTEXT: u32 = 321;
pub const CB_SETEDITSEL: u32 = 322;
pub const CB_ADDSTRING: u32 = 323;
pub const CB_DELETESTRING: u32 = 324;
pub const CB_DIR: u32 = 325;
pub const CB_GETCOUNT: u32 = 326;
pub const CB_GETCURSEL: u32 = 327;
pub const CB_GETLBTEXT: u32 = 328;
pub const CB_GETLBTEXTLEN: u32 = 329;
pub const CB_INSERTSTRING: u32 = 330;
pub const CB_RESETCONTENT: u32 = 331;
pub const CB_FINDSTRING: u32 = 332;
pub const CB_SELECTSTRING: u32 = 333;
pub const CB_SETCURSEL: u32 = 334;
pub const CB_SHOWDROPDOWN: u32 = 335;
pub const CB_GETITEMDATA: u32 = 336;
pub const CB_SETITEMDATA: u32 = 337;
pub const CB_GETDROPPEDCONTROLRECT: u32 = 338;
pub const CB_SETITEMHEIGHT: u32 = 339;
pub const CB_GETITEMHEIGHT: u32 = 340;
pub const CB_SETEXTENDEDUI: u32 = 341;
pub const CB_GETEXTENDEDUI: u32 = 342;
pub const CB_GETDROPPEDSTATE: u32 = 343;
pub const CB_FINDSTRINGEXACT: u32 = 344;
pub const CB_SETLOCALE: u32 = 345;
pub const CB_GETLOCALE: u32 = 346;
pub const CB_GETTOPINDEX: u32 = 347;
pub const CB_SETTOPINDEX: u32 = 348;
pub const CB_GETHORIZONTALEXTENT: u32 = 349;
pub const CB_SETHORIZONTALEXTENT: u32 = 350;
pub const CB_GETDROPPEDWIDTH: u32 = 351;
pub const CB_SETDROPPEDWIDTH: u32 = 352;
pub const CB_INITSTORAGE: u32 = 353;
pub const CB_GETCOMBOBOXINFO: u32 = 356;
pub const CB_MSGMAX: u32 = 357;
pub const SBM_SETPOS: u32 = 224;
pub const SBM_GETPOS: u32 = 225;
pub const SBM_SETRANGE: u32 = 226;
pub const SBM_SETRANGEREDRAW: u32 = 230;
pub const SBM_GETRANGE: u32 = 227;
pub const SBM_ENABLE_ARROWS: u32 = 228;
pub const SBM_SETSCROLLINFO: u32 = 233;
pub const SBM_GETSCROLLINFO: u32 = 234;
pub const SBM_GETSCROLLBARINFO: u32 = 235;
pub const SIF_RANGE: u32 = 1;
pub const SIF_PAGE: u32 = 2;
pub const SIF_POS: u32 = 4;
pub const SIF_DISABLENOSCROLL: u32 = 8;
pub const SIF_TRACKPOS: u32 = 16;
pub const SIF_ALL: u32 = 23;
pub const MDIS_ALLCHILDSTYLES: u32 = 1;
pub const MDITILE_VERTICAL: u32 = 0;
pub const MDITILE_HORIZONTAL: u32 = 1;
pub const MDITILE_SKIPDISABLED: u32 = 2;
pub const MDITILE_ZORDER: u32 = 4;
pub const HELP_CONTEXT: u32 = 1;
pub const HELP_QUIT: u32 = 2;
pub const HELP_INDEX: u32 = 3;
pub const HELP_CONTENTS: u32 = 3;
pub const HELP_HELPONHELP: u32 = 4;
pub const HELP_SETINDEX: u32 = 5;
pub const HELP_SETCONTENTS: u32 = 5;
pub const HELP_CONTEXTPOPUP: u32 = 8;
pub const HELP_FORCEFILE: u32 = 9;
pub const HELP_KEY: u32 = 257;
pub const HELP_COMMAND: u32 = 258;
pub const HELP_PARTIALKEY: u32 = 261;
pub const HELP_MULTIKEY: u32 = 513;
pub const HELP_SETWINPOS: u32 = 515;
pub const HELP_CONTEXTMENU: u32 = 10;
pub const HELP_FINDER: u32 = 11;
pub const HELP_WM_HELP: u32 = 12;
pub const HELP_SETPOPUP_POS: u32 = 13;
pub const HELP_TCARD: u32 = 32768;
pub const HELP_TCARD_DATA: u32 = 16;
pub const HELP_TCARD_OTHER_CALLER: u32 = 17;
pub const IDH_NO_HELP: u32 = 28440;
pub const IDH_MISSING_CONTEXT: u32 = 28441;
pub const IDH_GENERIC_HELP_BUTTON: u32 = 28442;
pub const IDH_OK: u32 = 28443;
pub const IDH_CANCEL: u32 = 28444;
pub const IDH_HELP: u32 = 28445;
pub const GR_GDIOBJECTS: u32 = 0;
pub const GR_USEROBJECTS: u32 = 1;
pub const SPI_GETBEEP: u32 = 1;
pub const SPI_SETBEEP: u32 = 2;
pub const SPI_GETMOUSE: u32 = 3;
pub const SPI_SETMOUSE: u32 = 4;
pub const SPI_GETBORDER: u32 = 5;
pub const SPI_SETBORDER: u32 = 6;
pub const SPI_GETKEYBOARDSPEED: u32 = 10;
pub const SPI_SETKEYBOARDSPEED: u32 = 11;
pub const SPI_LANGDRIVER: u32 = 12;
pub const SPI_ICONHORIZONTALSPACING: u32 = 13;
pub const SPI_GETSCREENSAVETIMEOUT: u32 = 14;
pub const SPI_SETSCREENSAVETIMEOUT: u32 = 15;
pub const SPI_GETSCREENSAVEACTIVE: u32 = 16;
pub const SPI_SETSCREENSAVEACTIVE: u32 = 17;
pub const SPI_GETGRIDGRANULARITY: u32 = 18;
pub const SPI_SETGRIDGRANULARITY: u32 = 19;
pub const SPI_SETDESKWALLPAPER: u32 = 20;
pub const SPI_SETDESKPATTERN: u32 = 21;
pub const SPI_GETKEYBOARDDELAY: u32 = 22;
pub const SPI_SETKEYBOARDDELAY: u32 = 23;
pub const SPI_ICONVERTICALSPACING: u32 = 24;
pub const SPI_GETICONTITLEWRAP: u32 = 25;
pub const SPI_SETICONTITLEWRAP: u32 = 26;
pub const SPI_GETMENUDROPALIGNMENT: u32 = 27;
pub const SPI_SETMENUDROPALIGNMENT: u32 = 28;
pub const SPI_SETDOUBLECLKWIDTH: u32 = 29;
pub const SPI_SETDOUBLECLKHEIGHT: u32 = 30;
pub const SPI_GETICONTITLELOGFONT: u32 = 31;
pub const SPI_SETDOUBLECLICKTIME: u32 = 32;
pub const SPI_SETMOUSEBUTTONSWAP: u32 = 33;
pub const SPI_SETICONTITLELOGFONT: u32 = 34;
pub const SPI_GETFASTTASKSWITCH: u32 = 35;
pub const SPI_SETFASTTASKSWITCH: u32 = 36;
pub const SPI_SETDRAGFULLWINDOWS: u32 = 37;
pub const SPI_GETDRAGFULLWINDOWS: u32 = 38;
pub const SPI_GETNONCLIENTMETRICS: u32 = 41;
pub const SPI_SETNONCLIENTMETRICS: u32 = 42;
pub const SPI_GETMINIMIZEDMETRICS: u32 = 43;
pub const SPI_SETMINIMIZEDMETRICS: u32 = 44;
pub const SPI_GETICONMETRICS: u32 = 45;
pub const SPI_SETICONMETRICS: u32 = 46;
pub const SPI_SETWORKAREA: u32 = 47;
pub const SPI_GETWORKAREA: u32 = 48;
pub const SPI_SETPENWINDOWS: u32 = 49;
pub const SPI_GETHIGHCONTRAST: u32 = 66;
pub const SPI_SETHIGHCONTRAST: u32 = 67;
pub const SPI_GETKEYBOARDPREF: u32 = 68;
pub const SPI_SETKEYBOARDPREF: u32 = 69;
pub const SPI_GETSCREENREADER: u32 = 70;
pub const SPI_SETSCREENREADER: u32 = 71;
pub const SPI_GETANIMATION: u32 = 72;
pub const SPI_SETANIMATION: u32 = 73;
pub const SPI_GETFONTSMOOTHING: u32 = 74;
pub const SPI_SETFONTSMOOTHING: u32 = 75;
pub const SPI_SETDRAGWIDTH: u32 = 76;
pub const SPI_SETDRAGHEIGHT: u32 = 77;
pub const SPI_SETHANDHELD: u32 = 78;
pub const SPI_GETLOWPOWERTIMEOUT: u32 = 79;
pub const SPI_GETPOWEROFFTIMEOUT: u32 = 80;
pub const SPI_SETLOWPOWERTIMEOUT: u32 = 81;
pub const SPI_SETPOWEROFFTIMEOUT: u32 = 82;
pub const SPI_GETLOWPOWERACTIVE: u32 = 83;
pub const SPI_GETPOWEROFFACTIVE: u32 = 84;
pub const SPI_SETLOWPOWERACTIVE: u32 = 85;
pub const SPI_SETPOWEROFFACTIVE: u32 = 86;
pub const SPI_SETCURSORS: u32 = 87;
pub const SPI_SETICONS: u32 = 88;
pub const SPI_GETDEFAULTINPUTLANG: u32 = 89;
pub const SPI_SETDEFAULTINPUTLANG: u32 = 90;
pub const SPI_SETLANGTOGGLE: u32 = 91;
pub const SPI_GETWINDOWSEXTENSION: u32 = 92;
pub const SPI_SETMOUSETRAILS: u32 = 93;
pub const SPI_GETMOUSETRAILS: u32 = 94;
pub const SPI_SETSCREENSAVERRUNNING: u32 = 97;
pub const SPI_SCREENSAVERRUNNING: u32 = 97;
pub const SPI_GETFILTERKEYS: u32 = 50;
pub const SPI_SETFILTERKEYS: u32 = 51;
pub const SPI_GETTOGGLEKEYS: u32 = 52;
pub const SPI_SETTOGGLEKEYS: u32 = 53;
pub const SPI_GETMOUSEKEYS: u32 = 54;
pub const SPI_SETMOUSEKEYS: u32 = 55;
pub const SPI_GETSHOWSOUNDS: u32 = 56;
pub const SPI_SETSHOWSOUNDS: u32 = 57;
pub const SPI_GETSTICKYKEYS: u32 = 58;
pub const SPI_SETSTICKYKEYS: u32 = 59;
pub const SPI_GETACCESSTIMEOUT: u32 = 60;
pub const SPI_SETACCESSTIMEOUT: u32 = 61;
pub const SPI_GETSERIALKEYS: u32 = 62;
pub const SPI_SETSERIALKEYS: u32 = 63;
pub const SPI_GETSOUNDSENTRY: u32 = 64;
pub const SPI_SETSOUNDSENTRY: u32 = 65;
pub const SPI_GETSNAPTODEFBUTTON: u32 = 95;
pub const SPI_SETSNAPTODEFBUTTON: u32 = 96;
pub const SPI_GETMOUSEHOVERWIDTH: u32 = 98;
pub const SPI_SETMOUSEHOVERWIDTH: u32 = 99;
pub const SPI_GETMOUSEHOVERHEIGHT: u32 = 100;
pub const SPI_SETMOUSEHOVERHEIGHT: u32 = 101;
pub const SPI_GETMOUSEHOVERTIME: u32 = 102;
pub const SPI_SETMOUSEHOVERTIME: u32 = 103;
pub const SPI_GETWHEELSCROLLLINES: u32 = 104;
pub const SPI_SETWHEELSCROLLLINES: u32 = 105;
pub const SPI_GETMENUSHOWDELAY: u32 = 106;
pub const SPI_SETMENUSHOWDELAY: u32 = 107;
pub const SPI_GETSHOWIMEUI: u32 = 110;
pub const SPI_SETSHOWIMEUI: u32 = 111;
pub const SPI_GETMOUSESPEED: u32 = 112;
pub const SPI_SETMOUSESPEED: u32 = 113;
pub const SPI_GETSCREENSAVERRUNNING: u32 = 114;
pub const SPI_GETDESKWALLPAPER: u32 = 115;
pub const SPI_GETACTIVEWINDOWTRACKING: u32 = 4096;
pub const SPI_SETACTIVEWINDOWTRACKING: u32 = 4097;
pub const SPI_GETMENUANIMATION: u32 = 4098;
pub const SPI_SETMENUANIMATION: u32 = 4099;
pub const SPI_GETCOMBOBOXANIMATION: u32 = 4100;
pub const SPI_SETCOMBOBOXANIMATION: u32 = 4101;
pub const SPI_GETLISTBOXSMOOTHSCROLLING: u32 = 4102;
pub const SPI_SETLISTBOXSMOOTHSCROLLING: u32 = 4103;
pub const SPI_GETGRADIENTCAPTIONS: u32 = 4104;
pub const SPI_SETGRADIENTCAPTIONS: u32 = 4105;
pub const SPI_GETKEYBOARDCUES: u32 = 4106;
pub const SPI_SETKEYBOARDCUES: u32 = 4107;
pub const SPI_GETMENUUNDERLINES: u32 = 4106;
pub const SPI_SETMENUUNDERLINES: u32 = 4107;
pub const SPI_GETACTIVEWNDTRKZORDER: u32 = 4108;
pub const SPI_SETACTIVEWNDTRKZORDER: u32 = 4109;
pub const SPI_GETHOTTRACKING: u32 = 4110;
pub const SPI_SETHOTTRACKING: u32 = 4111;
pub const SPI_GETMENUFADE: u32 = 4114;
pub const SPI_SETMENUFADE: u32 = 4115;
pub const SPI_GETSELECTIONFADE: u32 = 4116;
pub const SPI_SETSELECTIONFADE: u32 = 4117;
pub const SPI_GETTOOLTIPANIMATION: u32 = 4118;
pub const SPI_SETTOOLTIPANIMATION: u32 = 4119;
pub const SPI_GETTOOLTIPFADE: u32 = 4120;
pub const SPI_SETTOOLTIPFADE: u32 = 4121;
pub const SPI_GETCURSORSHADOW: u32 = 4122;
pub const SPI_SETCURSORSHADOW: u32 = 4123;
pub const SPI_GETMOUSESONAR: u32 = 4124;
pub const SPI_SETMOUSESONAR: u32 = 4125;
pub const SPI_GETMOUSECLICKLOCK: u32 = 4126;
pub const SPI_SETMOUSECLICKLOCK: u32 = 4127;
pub const SPI_GETMOUSEVANISH: u32 = 4128;
pub const SPI_SETMOUSEVANISH: u32 = 4129;
pub const SPI_GETFLATMENU: u32 = 4130;
pub const SPI_SETFLATMENU: u32 = 4131;
pub const SPI_GETDROPSHADOW: u32 = 4132;
pub const SPI_SETDROPSHADOW: u32 = 4133;
pub const SPI_GETBLOCKSENDINPUTRESETS: u32 = 4134;
pub const SPI_SETBLOCKSENDINPUTRESETS: u32 = 4135;
pub const SPI_GETUIEFFECTS: u32 = 4158;
pub const SPI_SETUIEFFECTS: u32 = 4159;
pub const SPI_GETFOREGROUNDLOCKTIMEOUT: u32 = 8192;
pub const SPI_SETFOREGROUNDLOCKTIMEOUT: u32 = 8193;
pub const SPI_GETACTIVEWNDTRKTIMEOUT: u32 = 8194;
pub const SPI_SETACTIVEWNDTRKTIMEOUT: u32 = 8195;
pub const SPI_GETFOREGROUNDFLASHCOUNT: u32 = 8196;
pub const SPI_SETFOREGROUNDFLASHCOUNT: u32 = 8197;
pub const SPI_GETCARETWIDTH: u32 = 8198;
pub const SPI_SETCARETWIDTH: u32 = 8199;
pub const SPI_GETMOUSECLICKLOCKTIME: u32 = 8200;
pub const SPI_SETMOUSECLICKLOCKTIME: u32 = 8201;
pub const SPI_GETFONTSMOOTHINGTYPE: u32 = 8202;
pub const SPI_SETFONTSMOOTHINGTYPE: u32 = 8203;
pub const FE_FONTSMOOTHINGSTANDARD: u32 = 1;
pub const FE_FONTSMOOTHINGCLEARTYPE: u32 = 2;
pub const FE_FONTSMOOTHINGDOCKING: u32 = 32768;
pub const SPI_GETFONTSMOOTHINGCONTRAST: u32 = 8204;
pub const SPI_SETFONTSMOOTHINGCONTRAST: u32 = 8205;
pub const SPI_GETFOCUSBORDERWIDTH: u32 = 8206;
pub const SPI_SETFOCUSBORDERWIDTH: u32 = 8207;
pub const SPI_GETFOCUSBORDERHEIGHT: u32 = 8208;
pub const SPI_SETFOCUSBORDERHEIGHT: u32 = 8209;
pub const SPI_GETFONTSMOOTHINGORIENTATION: u32 = 8210;
pub const SPI_SETFONTSMOOTHINGORIENTATION: u32 = 8211;
pub const FE_FONTSMOOTHINGORIENTATIONBGR: u32 = 0;
pub const FE_FONTSMOOTHINGORIENTATIONRGB: u32 = 1;
pub const SPIF_UPDATEINIFILE: u32 = 1;
pub const SPIF_SENDWININICHANGE: u32 = 2;
pub const SPIF_SENDCHANGE: u32 = 2;
pub const METRICS_USEDEFAULT: i32 = -1;
pub const SERKF_SERIALKEYSON: u32 = 1;
pub const SERKF_AVAILABLE: u32 = 2;
pub const SERKF_INDICATOR: u32 = 4;
pub const HCF_HIGHCONTRASTON: u32 = 1;
pub const HCF_AVAILABLE: u32 = 2;
pub const HCF_HOTKEYACTIVE: u32 = 4;
pub const HCF_CONFIRMHOTKEY: u32 = 8;
pub const HCF_HOTKEYSOUND: u32 = 16;
pub const HCF_INDICATOR: u32 = 32;
pub const HCF_HOTKEYAVAILABLE: u32 = 64;
pub const HCF_LOGONDESKTOP: u32 = 256;
pub const HCF_DEFAULTDESKTOP: u32 = 512;
pub const CDS_UPDATEREGISTRY: u32 = 1;
pub const CDS_TEST: u32 = 2;
pub const CDS_FULLSCREEN: u32 = 4;
pub const CDS_GLOBAL: u32 = 8;
pub const CDS_SET_PRIMARY: u32 = 16;
pub const CDS_VIDEOPARAMETERS: u32 = 32;
pub const CDS_RESET: u32 = 1073741824;
pub const CDS_RESET_EX: u32 = 536870912;
pub const CDS_NORESET: u32 = 268435456;
pub const VP_COMMAND_GET: u32 = 1;
pub const VP_COMMAND_SET: u32 = 2;
pub const VP_FLAGS_TV_MODE: u32 = 1;
pub const VP_FLAGS_TV_STANDARD: u32 = 2;
pub const VP_FLAGS_FLICKER: u32 = 4;
pub const VP_FLAGS_OVERSCAN: u32 = 8;
pub const VP_FLAGS_MAX_UNSCALED: u32 = 16;
pub const VP_FLAGS_POSITION: u32 = 32;
pub const VP_FLAGS_BRIGHTNESS: u32 = 64;
pub const VP_FLAGS_CONTRAST: u32 = 128;
pub const VP_FLAGS_COPYPROTECT: u32 = 256;
pub const VP_MODE_WIN_GRAPHICS: u32 = 1;
pub const VP_MODE_TV_PLAYBACK: u32 = 2;
pub const VP_TV_STANDARD_NTSC_M: u32 = 1;
pub const VP_TV_STANDARD_NTSC_M_J: u32 = 2;
pub const VP_TV_STANDARD_PAL_B: u32 = 4;
pub const VP_TV_STANDARD_PAL_D: u32 = 8;
pub const VP_TV_STANDARD_PAL_H: u32 = 16;
pub const VP_TV_STANDARD_PAL_I: u32 = 32;
pub const VP_TV_STANDARD_PAL_M: u32 = 64;
pub const VP_TV_STANDARD_PAL_N: u32 = 128;
pub const VP_TV_STANDARD_SECAM_B: u32 = 256;
pub const VP_TV_STANDARD_SECAM_D: u32 = 512;
pub const VP_TV_STANDARD_SECAM_G: u32 = 1024;
pub const VP_TV_STANDARD_SECAM_H: u32 = 2048;
pub const VP_TV_STANDARD_SECAM_K: u32 = 4096;
pub const VP_TV_STANDARD_SECAM_K1: u32 = 8192;
pub const VP_TV_STANDARD_SECAM_L: u32 = 16384;
pub const VP_TV_STANDARD_WIN_VGA: u32 = 32768;
pub const VP_TV_STANDARD_NTSC_433: u32 = 65536;
pub const VP_TV_STANDARD_PAL_G: u32 = 131072;
pub const VP_TV_STANDARD_PAL_60: u32 = 262144;
pub const VP_TV_STANDARD_SECAM_L1: u32 = 524288;
pub const VP_CP_TYPE_APS_TRIGGER: u32 = 1;
pub const VP_CP_TYPE_MACROVISION: u32 = 2;
pub const VP_CP_CMD_ACTIVATE: u32 = 1;
pub const VP_CP_CMD_DEACTIVATE: u32 = 2;
pub const VP_CP_CMD_CHANGE: u32 = 4;
pub const DISP_CHANGE_SUCCESSFUL: u32 = 0;
pub const DISP_CHANGE_RESTART: u32 = 1;
pub const DISP_CHANGE_FAILED: i32 = -1;
pub const DISP_CHANGE_BADMODE: i32 = -2;
pub const DISP_CHANGE_NOTUPDATED: i32 = -3;
pub const DISP_CHANGE_BADFLAGS: i32 = -4;
pub const DISP_CHANGE_BADPARAM: i32 = -5;
pub const DISP_CHANGE_BADDUALVIEW: i32 = -6;
pub const EDS_RAWMODE: u32 = 2;
pub const EDD_GET_DEVICE_INTERFACE_NAME: u32 = 1;
pub const FKF_FILTERKEYSON: u32 = 1;
pub const FKF_AVAILABLE: u32 = 2;
pub const FKF_HOTKEYACTIVE: u32 = 4;
pub const FKF_CONFIRMHOTKEY: u32 = 8;
pub const FKF_HOTKEYSOUND: u32 = 16;
pub const FKF_INDICATOR: u32 = 32;
pub const FKF_CLICKON: u32 = 64;
pub const SKF_STICKYKEYSON: u32 = 1;
pub const SKF_AVAILABLE: u32 = 2;
pub const SKF_HOTKEYACTIVE: u32 = 4;
pub const SKF_CONFIRMHOTKEY: u32 = 8;
pub const SKF_HOTKEYSOUND: u32 = 16;
pub const SKF_INDICATOR: u32 = 32;
pub const SKF_AUDIBLEFEEDBACK: u32 = 64;
pub const SKF_TRISTATE: u32 = 128;
pub const SKF_TWOKEYSOFF: u32 = 256;
pub const SKF_LALTLATCHED: u32 = 268435456;
pub const SKF_LCTLLATCHED: u32 = 67108864;
pub const SKF_LSHIFTLATCHED: u32 = 16777216;
pub const SKF_RALTLATCHED: u32 = 536870912;
pub const SKF_RCTLLATCHED: u32 = 134217728;
pub const SKF_RSHIFTLATCHED: u32 = 33554432;
pub const SKF_LWINLATCHED: u32 = 1073741824;
pub const SKF_RWINLATCHED: u32 = 2147483648;
pub const SKF_LALTLOCKED: u32 = 1048576;
pub const SKF_LCTLLOCKED: u32 = 262144;
pub const SKF_LSHIFTLOCKED: u32 = 65536;
pub const SKF_RALTLOCKED: u32 = 2097152;
pub const SKF_RCTLLOCKED: u32 = 524288;
pub const SKF_RSHIFTLOCKED: u32 = 131072;
pub const SKF_LWINLOCKED: u32 = 4194304;
pub const SKF_RWINLOCKED: u32 = 8388608;
pub const MKF_MOUSEKEYSON: u32 = 1;
pub const MKF_AVAILABLE: u32 = 2;
pub const MKF_HOTKEYACTIVE: u32 = 4;
pub const MKF_CONFIRMHOTKEY: u32 = 8;
pub const MKF_HOTKEYSOUND: u32 = 16;
pub const MKF_INDICATOR: u32 = 32;
pub const MKF_MODIFIERS: u32 = 64;
pub const MKF_REPLACENUMBERS: u32 = 128;
pub const MKF_LEFTBUTTONSEL: u32 = 268435456;
pub const MKF_RIGHTBUTTONSEL: u32 = 536870912;
pub const MKF_LEFTBUTTONDOWN: u32 = 16777216;
pub const MKF_RIGHTBUTTONDOWN: u32 = 33554432;
pub const MKF_MOUSEMODE: u32 = 2147483648;
pub const ATF_TIMEOUTON: u32 = 1;
pub const ATF_ONOFFFEEDBACK: u32 = 2;
pub const SSGF_NONE: u32 = 0;
pub const SSGF_DISPLAY: u32 = 3;
pub const SSTF_NONE: u32 = 0;
pub const SSTF_CHARS: u32 = 1;
pub const SSTF_BORDER: u32 = 2;
pub const SSTF_DISPLAY: u32 = 3;
pub const SSWF_NONE: u32 = 0;
pub const SSWF_TITLE: u32 = 1;
pub const SSWF_WINDOW: u32 = 2;
pub const SSWF_DISPLAY: u32 = 3;
pub const SSWF_CUSTOM: u32 = 4;
pub const SSF_SOUNDSENTRYON: u32 = 1;
pub const SSF_AVAILABLE: u32 = 2;
pub const SSF_INDICATOR: u32 = 4;
pub const TKF_TOGGLEKEYSON: u32 = 1;
pub const TKF_AVAILABLE: u32 = 2;
pub const TKF_HOTKEYACTIVE: u32 = 4;
pub const TKF_CONFIRMHOTKEY: u32 = 8;
pub const TKF_HOTKEYSOUND: u32 = 16;
pub const TKF_INDICATOR: u32 = 32;
pub const SLE_ERROR: u32 = 1;
pub const SLE_MINORERROR: u32 = 2;
pub const SLE_WARNING: u32 = 3;
pub const MONITOR_DEFAULTTONULL: u32 = 0;
pub const MONITOR_DEFAULTTOPRIMARY: u32 = 1;
pub const MONITOR_DEFAULTTONEAREST: u32 = 2;
pub const MONITORINFOF_PRIMARY: u32 = 1;
pub const WINEVENT_OUTOFCONTEXT: u32 = 0;
pub const WINEVENT_SKIPOWNTHREAD: u32 = 1;
pub const WINEVENT_SKIPOWNPROCESS: u32 = 2;
pub const WINEVENT_INCONTEXT: u32 = 4;
pub const CHILDID_SELF: u32 = 0;
pub const INDEXID_OBJECT: u32 = 0;
pub const INDEXID_CONTAINER: u32 = 0;
pub const EVENT_MIN: u32 = 1;
pub const EVENT_MAX: u32 = 2147483647;
pub const EVENT_SYSTEM_SOUND: u32 = 1;
pub const EVENT_SYSTEM_ALERT: u32 = 2;
pub const EVENT_SYSTEM_FOREGROUND: u32 = 3;
pub const EVENT_SYSTEM_MENUSTART: u32 = 4;
pub const EVENT_SYSTEM_MENUEND: u32 = 5;
pub const EVENT_SYSTEM_MENUPOPUPSTART: u32 = 6;
pub const EVENT_SYSTEM_MENUPOPUPEND: u32 = 7;
pub const EVENT_SYSTEM_CAPTURESTART: u32 = 8;
pub const EVENT_SYSTEM_CAPTUREEND: u32 = 9;
pub const EVENT_SYSTEM_MOVESIZESTART: u32 = 10;
pub const EVENT_SYSTEM_MOVESIZEEND: u32 = 11;
pub const EVENT_SYSTEM_CONTEXTHELPSTART: u32 = 12;
pub const EVENT_SYSTEM_CONTEXTHELPEND: u32 = 13;
pub const EVENT_SYSTEM_DRAGDROPSTART: u32 = 14;
pub const EVENT_SYSTEM_DRAGDROPEND: u32 = 15;
pub const EVENT_SYSTEM_DIALOGSTART: u32 = 16;
pub const EVENT_SYSTEM_DIALOGEND: u32 = 17;
pub const EVENT_SYSTEM_SCROLLINGSTART: u32 = 18;
pub const EVENT_SYSTEM_SCROLLINGEND: u32 = 19;
pub const EVENT_SYSTEM_SWITCHSTART: u32 = 20;
pub const EVENT_SYSTEM_SWITCHEND: u32 = 21;
pub const EVENT_SYSTEM_MINIMIZESTART: u32 = 22;
pub const EVENT_SYSTEM_MINIMIZEEND: u32 = 23;
pub const EVENT_CONSOLE_CARET: u32 = 16385;
pub const EVENT_CONSOLE_UPDATE_REGION: u32 = 16386;
pub const EVENT_CONSOLE_UPDATE_SIMPLE: u32 = 16387;
pub const EVENT_CONSOLE_UPDATE_SCROLL: u32 = 16388;
pub const EVENT_CONSOLE_LAYOUT: u32 = 16389;
pub const EVENT_CONSOLE_START_APPLICATION: u32 = 16390;
pub const EVENT_CONSOLE_END_APPLICATION: u32 = 16391;
pub const CONSOLE_APPLICATION_16BIT: u32 = 0;
pub const CONSOLE_CARET_SELECTION: u32 = 1;
pub const CONSOLE_CARET_VISIBLE: u32 = 2;
pub const EVENT_OBJECT_CREATE: u32 = 32768;
pub const EVENT_OBJECT_DESTROY: u32 = 32769;
pub const EVENT_OBJECT_SHOW: u32 = 32770;
pub const EVENT_OBJECT_HIDE: u32 = 32771;
pub const EVENT_OBJECT_REORDER: u32 = 32772;
pub const EVENT_OBJECT_FOCUS: u32 = 32773;
pub const EVENT_OBJECT_SELECTION: u32 = 32774;
pub const EVENT_OBJECT_SELECTIONADD: u32 = 32775;
pub const EVENT_OBJECT_SELECTIONREMOVE: u32 = 32776;
pub const EVENT_OBJECT_SELECTIONWITHIN: u32 = 32777;
pub const EVENT_OBJECT_STATECHANGE: u32 = 32778;
pub const EVENT_OBJECT_LOCATIONCHANGE: u32 = 32779;
pub const EVENT_OBJECT_NAMECHANGE: u32 = 32780;
pub const EVENT_OBJECT_DESCRIPTIONCHANGE: u32 = 32781;
pub const EVENT_OBJECT_VALUECHANGE: u32 = 32782;
pub const EVENT_OBJECT_PARENTCHANGE: u32 = 32783;
pub const EVENT_OBJECT_HELPCHANGE: u32 = 32784;
pub const EVENT_OBJECT_DEFACTIONCHANGE: u32 = 32785;
pub const EVENT_OBJECT_ACCELERATORCHANGE: u32 = 32786;
pub const SOUND_SYSTEM_STARTUP: u32 = 1;
pub const SOUND_SYSTEM_SHUTDOWN: u32 = 2;
pub const SOUND_SYSTEM_BEEP: u32 = 3;
pub const SOUND_SYSTEM_ERROR: u32 = 4;
pub const SOUND_SYSTEM_QUESTION: u32 = 5;
pub const SOUND_SYSTEM_WARNING: u32 = 6;
pub const SOUND_SYSTEM_INFORMATION: u32 = 7;
pub const SOUND_SYSTEM_MAXIMIZE: u32 = 8;
pub const SOUND_SYSTEM_MINIMIZE: u32 = 9;
pub const SOUND_SYSTEM_RESTOREUP: u32 = 10;
pub const SOUND_SYSTEM_RESTOREDOWN: u32 = 11;
pub const SOUND_SYSTEM_APPSTART: u32 = 12;
pub const SOUND_SYSTEM_FAULT: u32 = 13;
pub const SOUND_SYSTEM_APPEND: u32 = 14;
pub const SOUND_SYSTEM_MENUCOMMAND: u32 = 15;
pub const SOUND_SYSTEM_MENUPOPUP: u32 = 16;
pub const CSOUND_SYSTEM: u32 = 16;
pub const ALERT_SYSTEM_INFORMATIONAL: u32 = 1;
pub const ALERT_SYSTEM_WARNING: u32 = 2;
pub const ALERT_SYSTEM_ERROR: u32 = 3;
pub const ALERT_SYSTEM_QUERY: u32 = 4;
pub const ALERT_SYSTEM_CRITICAL: u32 = 5;
pub const CALERT_SYSTEM: u32 = 6;
pub const GUI_CARETBLINKING: u32 = 1;
pub const GUI_INMOVESIZE: u32 = 2;
pub const GUI_INMENUMODE: u32 = 4;
pub const GUI_SYSTEMMENUMODE: u32 = 8;
pub const GUI_POPUPMENUMODE: u32 = 16;
pub const GUI_16BITTASK: u32 = 0;
pub const STATE_SYSTEM_UNAVAILABLE: u32 = 1;
pub const STATE_SYSTEM_SELECTED: u32 = 2;
pub const STATE_SYSTEM_FOCUSED: u32 = 4;
pub const STATE_SYSTEM_PRESSED: u32 = 8;
pub const STATE_SYSTEM_CHECKED: u32 = 16;
pub const STATE_SYSTEM_MIXED: u32 = 32;
pub const STATE_SYSTEM_INDETERMINATE: u32 = 32;
pub const STATE_SYSTEM_READONLY: u32 = 64;
pub const STATE_SYSTEM_HOTTRACKED: u32 = 128;
pub const STATE_SYSTEM_DEFAULT: u32 = 256;
pub const STATE_SYSTEM_EXPANDED: u32 = 512;
pub const STATE_SYSTEM_COLLAPSED: u32 = 1024;
pub const STATE_SYSTEM_BUSY: u32 = 2048;
pub const STATE_SYSTEM_FLOATING: u32 = 4096;
pub const STATE_SYSTEM_MARQUEED: u32 = 8192;
pub const STATE_SYSTEM_ANIMATED: u32 = 16384;
pub const STATE_SYSTEM_INVISIBLE: u32 = 32768;
pub const STATE_SYSTEM_OFFSCREEN: u32 = 65536;
pub const STATE_SYSTEM_SIZEABLE: u32 = 131072;
pub const STATE_SYSTEM_MOVEABLE: u32 = 262144;
pub const STATE_SYSTEM_SELFVOICING: u32 = 524288;
pub const STATE_SYSTEM_FOCUSABLE: u32 = 1048576;
pub const STATE_SYSTEM_SELECTABLE: u32 = 2097152;
pub const STATE_SYSTEM_LINKED: u32 = 4194304;
pub const STATE_SYSTEM_TRAVERSED: u32 = 8388608;
pub const STATE_SYSTEM_MULTISELECTABLE: u32 = 16777216;
pub const STATE_SYSTEM_EXTSELECTABLE: u32 = 33554432;
pub const STATE_SYSTEM_ALERT_LOW: u32 = 67108864;
pub const STATE_SYSTEM_ALERT_MEDIUM: u32 = 134217728;
pub const STATE_SYSTEM_ALERT_HIGH: u32 = 268435456;
pub const STATE_SYSTEM_PROTECTED: u32 = 536870912;
pub const STATE_SYSTEM_VALID: u32 = 1073741823;
pub const CCHILDREN_TITLEBAR: u32 = 5;
pub const CCHILDREN_SCROLLBAR: u32 = 5;
pub const CURSOR_SHOWING: u32 = 1;
pub const WS_ACTIVECAPTION: u32 = 1;
pub const GA_PARENT: u32 = 1;
pub const GA_ROOT: u32 = 2;
pub const GA_ROOTOWNER: u32 = 3;
pub const RIM_INPUT: u32 = 0;
pub const RIM_INPUTSINK: u32 = 1;
pub const RIM_TYPEMOUSE: u32 = 0;
pub const RIM_TYPEKEYBOARD: u32 = 1;
pub const RIM_TYPEHID: u32 = 2;
pub const RI_MOUSE_LEFT_BUTTON_DOWN: u32 = 1;
pub const RI_MOUSE_LEFT_BUTTON_UP: u32 = 2;
pub const RI_MOUSE_RIGHT_BUTTON_DOWN: u32 = 4;
pub const RI_MOUSE_RIGHT_BUTTON_UP: u32 = 8;
pub const RI_MOUSE_MIDDLE_BUTTON_DOWN: u32 = 16;
pub const RI_MOUSE_MIDDLE_BUTTON_UP: u32 = 32;
pub const RI_MOUSE_BUTTON_4_DOWN: u32 = 64;
pub const RI_MOUSE_BUTTON_4_UP: u32 = 128;
pub const RI_MOUSE_BUTTON_5_DOWN: u32 = 256;
pub const RI_MOUSE_BUTTON_5_UP: u32 = 512;
pub const RI_MOUSE_WHEEL: u32 = 1024;
pub const RI_MOUSE_BUTTON_1_DOWN: u32 = 1;
pub const RI_MOUSE_BUTTON_1_UP: u32 = 2;
pub const RI_MOUSE_BUTTON_2_DOWN: u32 = 4;
pub const RI_MOUSE_BUTTON_2_UP: u32 = 8;
pub const RI_MOUSE_BUTTON_3_DOWN: u32 = 16;
pub const RI_MOUSE_BUTTON_3_UP: u32 = 32;
pub const MOUSE_MOVE_RELATIVE: u32 = 0;
pub const MOUSE_MOVE_ABSOLUTE: u32 = 1;
pub const MOUSE_VIRTUAL_DESKTOP: u32 = 2;
pub const MOUSE_ATTRIBUTES_CHANGED: u32 = 4;
pub const KEYBOARD_OVERRUN_MAKE_CODE: u32 = 255;
pub const RI_KEY_MAKE: u32 = 0;
pub const RI_KEY_BREAK: u32 = 1;
pub const RI_KEY_E0: u32 = 2;
pub const RI_KEY_E1: u32 = 4;
pub const RI_KEY_TERMSRV_SET_LED: u32 = 8;
pub const RI_KEY_TERMSRV_SHADOW: u32 = 16;
pub const RID_INPUT: u32 = 268435459;
pub const RID_HEADER: u32 = 268435461;
pub const RIDI_PREPARSEDDATA: u32 = 536870917;
pub const RIDI_DEVICENAME: u32 = 536870919;
pub const RIDI_DEVICEINFO: u32 = 536870923;
pub const RIDEV_REMOVE: u32 = 1;
pub const RIDEV_EXCLUDE: u32 = 16;
pub const RIDEV_PAGEONLY: u32 = 32;
pub const RIDEV_NOLEGACY: u32 = 48;
pub const RIDEV_INPUTSINK: u32 = 256;
pub const RIDEV_CAPTUREMOUSE: u32 = 512;
pub const RIDEV_NOHOTKEYS: u32 = 512;
pub const RIDEV_APPKEYS: u32 = 1024;
pub const RIDEV_EXINPUTSINK: u32 = 4096;
pub const RIDEV_DEVNOTIFY: u32 = 8192;
pub const RIDEV_EXMODEMASK: u32 = 240;
pub const GIDC_ARRIVAL: u32 = 1;
pub const GIDC_REMOVAL: u32 = 2;
pub const MAX_STR_BLOCKREASON: u32 = 256;
pub const MAX_LEADBYTES: u32 = 12;
pub const MAX_DEFAULTCHAR: u32 = 2;
pub const HIGH_SURROGATE_START: u32 = 55296;
pub const HIGH_SURROGATE_END: u32 = 56319;
pub const LOW_SURROGATE_START: u32 = 56320;
pub const LOW_SURROGATE_END: u32 = 57343;
pub const MB_PRECOMPOSED: u32 = 1;
pub const MB_COMPOSITE: u32 = 2;
pub const MB_USEGLYPHCHARS: u32 = 4;
pub const MB_ERR_INVALID_CHARS: u32 = 8;
pub const WC_DISCARDNS: u32 = 16;
pub const WC_SEPCHARS: u32 = 32;
pub const WC_DEFAULTCHAR: u32 = 64;
pub const WC_COMPOSITECHECK: u32 = 512;
pub const WC_NO_BEST_FIT_CHARS: u32 = 1024;
pub const CT_CTYPE1: u32 = 1;
pub const CT_CTYPE2: u32 = 2;
pub const CT_CTYPE3: u32 = 4;
pub const C1_UPPER: u32 = 1;
pub const C1_LOWER: u32 = 2;
pub const C1_DIGIT: u32 = 4;
pub const C1_SPACE: u32 = 8;
pub const C1_PUNCT: u32 = 16;
pub const C1_CNTRL: u32 = 32;
pub const C1_BLANK: u32 = 64;
pub const C1_XDIGIT: u32 = 128;
pub const C1_ALPHA: u32 = 256;
pub const C1_DEFINED: u32 = 512;
pub const C2_LEFTTORIGHT: u32 = 1;
pub const C2_RIGHTTOLEFT: u32 = 2;
pub const C2_EUROPENUMBER: u32 = 3;
pub const C2_EUROPESEPARATOR: u32 = 4;
pub const C2_EUROPETERMINATOR: u32 = 5;
pub const C2_ARABICNUMBER: u32 = 6;
pub const C2_COMMONSEPARATOR: u32 = 7;
pub const C2_BLOCKSEPARATOR: u32 = 8;
pub const C2_SEGMENTSEPARATOR: u32 = 9;
pub const C2_WHITESPACE: u32 = 10;
pub const C2_OTHERNEUTRAL: u32 = 11;
pub const C2_NOTAPPLICABLE: u32 = 0;
pub const C3_NONSPACING: u32 = 1;
pub const C3_DIACRITIC: u32 = 2;
pub const C3_VOWELMARK: u32 = 4;
pub const C3_SYMBOL: u32 = 8;
pub const C3_KATAKANA: u32 = 16;
pub const C3_HIRAGANA: u32 = 32;
pub const C3_HALFWIDTH: u32 = 64;
pub const C3_FULLWIDTH: u32 = 128;
pub const C3_IDEOGRAPH: u32 = 256;
pub const C3_KASHIDA: u32 = 512;
pub const C3_LEXICAL: u32 = 1024;
pub const C3_HIGHSURROGATE: u32 = 2048;
pub const C3_LOWSURROGATE: u32 = 4096;
pub const C3_ALPHA: u32 = 32768;
pub const C3_NOTAPPLICABLE: u32 = 0;
pub const NORM_IGNORECASE: u32 = 1;
pub const NORM_IGNORENONSPACE: u32 = 2;
pub const NORM_IGNORESYMBOLS: u32 = 4;
pub const LINGUISTIC_IGNORECASE: u32 = 16;
pub const LINGUISTIC_IGNOREDIACRITIC: u32 = 32;
pub const NORM_IGNOREKANATYPE: u32 = 65536;
pub const NORM_IGNOREWIDTH: u32 = 131072;
pub const NORM_LINGUISTIC_CASING: u32 = 134217728;
pub const MAP_FOLDCZONE: u32 = 16;
pub const MAP_PRECOMPOSED: u32 = 32;
pub const MAP_COMPOSITE: u32 = 64;
pub const MAP_FOLDDIGITS: u32 = 128;
pub const MAP_EXPAND_LIGATURES: u32 = 8192;
pub const LCMAP_LOWERCASE: u32 = 256;
pub const LCMAP_UPPERCASE: u32 = 512;
pub const LCMAP_SORTKEY: u32 = 1024;
pub const LCMAP_BYTEREV: u32 = 2048;
pub const LCMAP_HIRAGANA: u32 = 1048576;
pub const LCMAP_KATAKANA: u32 = 2097152;
pub const LCMAP_HALFWIDTH: u32 = 4194304;
pub const LCMAP_FULLWIDTH: u32 = 8388608;
pub const LCMAP_LINGUISTIC_CASING: u32 = 16777216;
pub const LCMAP_SIMPLIFIED_CHINESE: u32 = 33554432;
pub const LCMAP_TRADITIONAL_CHINESE: u32 = 67108864;
pub const FIND_STARTSWITH: u32 = 1048576;
pub const FIND_ENDSWITH: u32 = 2097152;
pub const FIND_FROMSTART: u32 = 4194304;
pub const FIND_FROMEND: u32 = 8388608;
pub const LGRPID_INSTALLED: u32 = 1;
pub const LGRPID_SUPPORTED: u32 = 2;
pub const LCID_INSTALLED: u32 = 1;
pub const LCID_SUPPORTED: u32 = 2;
pub const LCID_ALTERNATE_SORTS: u32 = 4;
pub const CP_INSTALLED: u32 = 1;
pub const CP_SUPPORTED: u32 = 2;
pub const SORT_STRINGSORT: u32 = 4096;
pub const CSTR_LESS_THAN: u32 = 1;
pub const CSTR_EQUAL: u32 = 2;
pub const CSTR_GREATER_THAN: u32 = 3;
pub const CP_ACP: u32 = 0;
pub const CP_OEMCP: u32 = 1;
pub const CP_MACCP: u32 = 2;
pub const CP_THREAD_ACP: u32 = 3;
pub const CP_SYMBOL: u32 = 42;
pub const CP_UTF7: u32 = 65000;
pub const CP_UTF8: u32 = 65001;
pub const CTRY_DEFAULT: u32 = 0;
pub const CTRY_ALBANIA: u32 = 355;
pub const CTRY_ALGERIA: u32 = 213;
pub const CTRY_ARGENTINA: u32 = 54;
pub const CTRY_ARMENIA: u32 = 374;
pub const CTRY_AUSTRALIA: u32 = 61;
pub const CTRY_AUSTRIA: u32 = 43;
pub const CTRY_AZERBAIJAN: u32 = 994;
pub const CTRY_BAHRAIN: u32 = 973;
pub const CTRY_BELARUS: u32 = 375;
pub const CTRY_BELGIUM: u32 = 32;
pub const CTRY_BELIZE: u32 = 501;
pub const CTRY_BOLIVIA: u32 = 591;
pub const CTRY_BRAZIL: u32 = 55;
pub const CTRY_BRUNEI_DARUSSALAM: u32 = 673;
pub const CTRY_BULGARIA: u32 = 359;
pub const CTRY_CANADA: u32 = 2;
pub const CTRY_CARIBBEAN: u32 = 1;
pub const CTRY_CHILE: u32 = 56;
pub const CTRY_COLOMBIA: u32 = 57;
pub const CTRY_COSTA_RICA: u32 = 506;
pub const CTRY_CROATIA: u32 = 385;
pub const CTRY_CZECH: u32 = 420;
pub const CTRY_DENMARK: u32 = 45;
pub const CTRY_DOMINICAN_REPUBLIC: u32 = 1;
pub const CTRY_ECUADOR: u32 = 593;
pub const CTRY_EGYPT: u32 = 20;
pub const CTRY_EL_SALVADOR: u32 = 503;
pub const CTRY_ESTONIA: u32 = 372;
pub const CTRY_FAEROE_ISLANDS: u32 = 298;
pub const CTRY_FINLAND: u32 = 358;
pub const CTRY_FRANCE: u32 = 33;
pub const CTRY_GEORGIA: u32 = 995;
pub const CTRY_GERMANY: u32 = 49;
pub const CTRY_GREECE: u32 = 30;
pub const CTRY_GUATEMALA: u32 = 502;
pub const CTRY_HONDURAS: u32 = 504;
pub const CTRY_HONG_KONG: u32 = 852;
pub const CTRY_HUNGARY: u32 = 36;
pub const CTRY_ICELAND: u32 = 354;
pub const CTRY_INDIA: u32 = 91;
pub const CTRY_INDONESIA: u32 = 62;
pub const CTRY_IRAN: u32 = 981;
pub const CTRY_IRAQ: u32 = 964;
pub const CTRY_IRELAND: u32 = 353;
pub const CTRY_ISRAEL: u32 = 972;
pub const CTRY_ITALY: u32 = 39;
pub const CTRY_JAMAICA: u32 = 1;
pub const CTRY_JAPAN: u32 = 81;
pub const CTRY_JORDAN: u32 = 962;
pub const CTRY_KAZAKSTAN: u32 = 7;
pub const CTRY_KENYA: u32 = 254;
pub const CTRY_KUWAIT: u32 = 965;
pub const CTRY_KYRGYZSTAN: u32 = 996;
pub const CTRY_LATVIA: u32 = 371;
pub const CTRY_LEBANON: u32 = 961;
pub const CTRY_LIBYA: u32 = 218;
pub const CTRY_LIECHTENSTEIN: u32 = 41;
pub const CTRY_LITHUANIA: u32 = 370;
pub const CTRY_LUXEMBOURG: u32 = 352;
pub const CTRY_MACAU: u32 = 853;
pub const CTRY_MACEDONIA: u32 = 389;
pub const CTRY_MALAYSIA: u32 = 60;
pub const CTRY_MALDIVES: u32 = 960;
pub const CTRY_MEXICO: u32 = 52;
pub const CTRY_MONACO: u32 = 33;
pub const CTRY_MONGOLIA: u32 = 976;
pub const CTRY_MOROCCO: u32 = 212;
pub const CTRY_NETHERLANDS: u32 = 31;
pub const CTRY_NEW_ZEALAND: u32 = 64;
pub const CTRY_NICARAGUA: u32 = 505;
pub const CTRY_NORWAY: u32 = 47;
pub const CTRY_OMAN: u32 = 968;
pub const CTRY_PAKISTAN: u32 = 92;
pub const CTRY_PANAMA: u32 = 507;
pub const CTRY_PARAGUAY: u32 = 595;
pub const CTRY_PERU: u32 = 51;
pub const CTRY_PHILIPPINES: u32 = 63;
pub const CTRY_POLAND: u32 = 48;
pub const CTRY_PORTUGAL: u32 = 351;
pub const CTRY_PRCHINA: u32 = 86;
pub const CTRY_PUERTO_RICO: u32 = 1;
pub const CTRY_QATAR: u32 = 974;
pub const CTRY_ROMANIA: u32 = 40;
pub const CTRY_RUSSIA: u32 = 7;
pub const CTRY_SAUDI_ARABIA: u32 = 966;
pub const CTRY_SERBIA: u32 = 381;
pub const CTRY_SINGAPORE: u32 = 65;
pub const CTRY_SLOVAK: u32 = 421;
pub const CTRY_SLOVENIA: u32 = 386;
pub const CTRY_SOUTH_AFRICA: u32 = 27;
pub const CTRY_SOUTH_KOREA: u32 = 82;
pub const CTRY_SPAIN: u32 = 34;
pub const CTRY_SWEDEN: u32 = 46;
pub const CTRY_SWITZERLAND: u32 = 41;
pub const CTRY_SYRIA: u32 = 963;
pub const CTRY_TAIWAN: u32 = 886;
pub const CTRY_TATARSTAN: u32 = 7;
pub const CTRY_THAILAND: u32 = 66;
pub const CTRY_TRINIDAD_Y_TOBAGO: u32 = 1;
pub const CTRY_TUNISIA: u32 = 216;
pub const CTRY_TURKEY: u32 = 90;
pub const CTRY_UAE: u32 = 971;
pub const CTRY_UKRAINE: u32 = 380;
pub const CTRY_UNITED_KINGDOM: u32 = 44;
pub const CTRY_UNITED_STATES: u32 = 1;
pub const CTRY_URUGUAY: u32 = 598;
pub const CTRY_UZBEKISTAN: u32 = 7;
pub const CTRY_VENEZUELA: u32 = 58;
pub const CTRY_VIET_NAM: u32 = 84;
pub const CTRY_YEMEN: u32 = 967;
pub const CTRY_ZIMBABWE: u32 = 263;
pub const LOCALE_SLOCALIZEDDISPLAYNAME: u32 = 2;
pub const LOCALE_RETURN_NUMBER: u32 = 536870912;
pub const LOCALE_USE_CP_ACP: u32 = 1073741824;
pub const LOCALE_NOUSEROVERRIDE: u32 = 2147483648;
pub const LOCALE_SENGLISHLANGUAGENAME: u32 = 4097;
pub const LOCALE_SNATIVELANGUAGENAME: u32 = 4;
pub const LOCALE_SLOCALIZEDCOUNTRYNAME: u32 = 6;
pub const LOCALE_SENGLISHCOUNTRYNAME: u32 = 4098;
pub const LOCALE_SNATIVECOUNTRYNAME: u32 = 8;
pub const LOCALE_SLANGUAGE: u32 = 2;
pub const LOCALE_SENGLANGUAGE: u32 = 4097;
pub const LOCALE_SNATIVELANGNAME: u32 = 4;
pub const LOCALE_SCOUNTRY: u32 = 6;
pub const LOCALE_SENGCOUNTRY: u32 = 4098;
pub const LOCALE_SNATIVECTRYNAME: u32 = 8;
pub const LOCALE_ILANGUAGE: u32 = 1;
pub const LOCALE_SABBREVLANGNAME: u32 = 3;
pub const LOCALE_ICOUNTRY: u32 = 5;
pub const LOCALE_SABBREVCTRYNAME: u32 = 7;
pub const LOCALE_IGEOID: u32 = 91;
pub const LOCALE_IDEFAULTLANGUAGE: u32 = 9;
pub const LOCALE_IDEFAULTCOUNTRY: u32 = 10;
pub const LOCALE_IDEFAULTCODEPAGE: u32 = 11;
pub const LOCALE_IDEFAULTANSICODEPAGE: u32 = 4100;
pub const LOCALE_IDEFAULTMACCODEPAGE: u32 = 4113;
pub const LOCALE_SLIST: u32 = 12;
pub const LOCALE_IMEASURE: u32 = 13;
pub const LOCALE_SDECIMAL: u32 = 14;
pub const LOCALE_STHOUSAND: u32 = 15;
pub const LOCALE_SGROUPING: u32 = 16;
pub const LOCALE_IDIGITS: u32 = 17;
pub const LOCALE_ILZERO: u32 = 18;
pub const LOCALE_INEGNUMBER: u32 = 4112;
pub const LOCALE_SNATIVEDIGITS: u32 = 19;
pub const LOCALE_SCURRENCY: u32 = 20;
pub const LOCALE_SINTLSYMBOL: u32 = 21;
pub const LOCALE_SMONDECIMALSEP: u32 = 22;
pub const LOCALE_SMONTHOUSANDSEP: u32 = 23;
pub const LOCALE_SMONGROUPING: u32 = 24;
pub const LOCALE_ICURRDIGITS: u32 = 25;
pub const LOCALE_IINTLCURRDIGITS: u32 = 26;
pub const LOCALE_ICURRENCY: u32 = 27;
pub const LOCALE_INEGCURR: u32 = 28;
pub const LOCALE_SDATE: u32 = 29;
pub const LOCALE_STIME: u32 = 30;
pub const LOCALE_SSHORTDATE: u32 = 31;
pub const LOCALE_SLONGDATE: u32 = 32;
pub const LOCALE_STIMEFORMAT: u32 = 4099;
pub const LOCALE_IDATE: u32 = 33;
pub const LOCALE_ILDATE: u32 = 34;
pub const LOCALE_ITIME: u32 = 35;
pub const LOCALE_ITIMEMARKPOSN: u32 = 4101;
pub const LOCALE_ICENTURY: u32 = 36;
pub const LOCALE_ITLZERO: u32 = 37;
pub const LOCALE_IDAYLZERO: u32 = 38;
pub const LOCALE_IMONLZERO: u32 = 39;
pub const LOCALE_S1159: u32 = 40;
pub const LOCALE_S2359: u32 = 41;
pub const LOCALE_ICALENDARTYPE: u32 = 4105;
pub const LOCALE_IOPTIONALCALENDAR: u32 = 4107;
pub const LOCALE_IFIRSTDAYOFWEEK: u32 = 4108;
pub const LOCALE_IFIRSTWEEKOFYEAR: u32 = 4109;
pub const LOCALE_SDAYNAME1: u32 = 42;
pub const LOCALE_SDAYNAME2: u32 = 43;
pub const LOCALE_SDAYNAME3: u32 = 44;
pub const LOCALE_SDAYNAME4: u32 = 45;
pub const LOCALE_SDAYNAME5: u32 = 46;
pub const LOCALE_SDAYNAME6: u32 = 47;
pub const LOCALE_SDAYNAME7: u32 = 48;
pub const LOCALE_SABBREVDAYNAME1: u32 = 49;
pub const LOCALE_SABBREVDAYNAME2: u32 = 50;
pub const LOCALE_SABBREVDAYNAME3: u32 = 51;
pub const LOCALE_SABBREVDAYNAME4: u32 = 52;
pub const LOCALE_SABBREVDAYNAME5: u32 = 53;
pub const LOCALE_SABBREVDAYNAME6: u32 = 54;
pub const LOCALE_SABBREVDAYNAME7: u32 = 55;
pub const LOCALE_SMONTHNAME1: u32 = 56;
pub const LOCALE_SMONTHNAME2: u32 = 57;
pub const LOCALE_SMONTHNAME3: u32 = 58;
pub const LOCALE_SMONTHNAME4: u32 = 59;
pub const LOCALE_SMONTHNAME5: u32 = 60;
pub const LOCALE_SMONTHNAME6: u32 = 61;
pub const LOCALE_SMONTHNAME7: u32 = 62;
pub const LOCALE_SMONTHNAME8: u32 = 63;
pub const LOCALE_SMONTHNAME9: u32 = 64;
pub const LOCALE_SMONTHNAME10: u32 = 65;
pub const LOCALE_SMONTHNAME11: u32 = 66;
pub const LOCALE_SMONTHNAME12: u32 = 67;
pub const LOCALE_SMONTHNAME13: u32 = 4110;
pub const LOCALE_SABBREVMONTHNAME1: u32 = 68;
pub const LOCALE_SABBREVMONTHNAME2: u32 = 69;
pub const LOCALE_SABBREVMONTHNAME3: u32 = 70;
pub const LOCALE_SABBREVMONTHNAME4: u32 = 71;
pub const LOCALE_SABBREVMONTHNAME5: u32 = 72;
pub const LOCALE_SABBREVMONTHNAME6: u32 = 73;
pub const LOCALE_SABBREVMONTHNAME7: u32 = 74;
pub const LOCALE_SABBREVMONTHNAME8: u32 = 75;
pub const LOCALE_SABBREVMONTHNAME9: u32 = 76;
pub const LOCALE_SABBREVMONTHNAME10: u32 = 77;
pub const LOCALE_SABBREVMONTHNAME11: u32 = 78;
pub const LOCALE_SABBREVMONTHNAME12: u32 = 79;
pub const LOCALE_SABBREVMONTHNAME13: u32 = 4111;
pub const LOCALE_SPOSITIVESIGN: u32 = 80;
pub const LOCALE_SNEGATIVESIGN: u32 = 81;
pub const LOCALE_IPOSSIGNPOSN: u32 = 82;
pub const LOCALE_INEGSIGNPOSN: u32 = 83;
pub const LOCALE_IPOSSYMPRECEDES: u32 = 84;
pub const LOCALE_IPOSSEPBYSPACE: u32 = 85;
pub const LOCALE_INEGSYMPRECEDES: u32 = 86;
pub const LOCALE_INEGSEPBYSPACE: u32 = 87;
pub const LOCALE_FONTSIGNATURE: u32 = 88;
pub const LOCALE_SISO639LANGNAME: u32 = 89;
pub const LOCALE_SISO3166CTRYNAME: u32 = 90;
pub const LOCALE_IDEFAULTEBCDICCODEPAGE: u32 = 4114;
pub const LOCALE_IPAPERSIZE: u32 = 4106;
pub const LOCALE_SENGCURRNAME: u32 = 4103;
pub const LOCALE_SNATIVECURRNAME: u32 = 4104;
pub const LOCALE_SYEARMONTH: u32 = 4102;
pub const LOCALE_SSORTNAME: u32 = 4115;
pub const LOCALE_IDIGITSUBSTITUTION: u32 = 4116;
pub const TIME_NOMINUTESORSECONDS: u32 = 1;
pub const TIME_NOSECONDS: u32 = 2;
pub const TIME_NOTIMEMARKER: u32 = 4;
pub const TIME_FORCE24HOURFORMAT: u32 = 8;
pub const DATE_SHORTDATE: u32 = 1;
pub const DATE_LONGDATE: u32 = 2;
pub const DATE_USE_ALT_CALENDAR: u32 = 4;
pub const DATE_YEARMONTH: u32 = 8;
pub const DATE_LTRREADING: u32 = 16;
pub const DATE_RTLREADING: u32 = 32;
pub const CAL_NOUSEROVERRIDE: u32 = 2147483648;
pub const CAL_USE_CP_ACP: u32 = 1073741824;
pub const CAL_RETURN_NUMBER: u32 = 536870912;
pub const CAL_ICALINTVALUE: u32 = 1;
pub const CAL_SCALNAME: u32 = 2;
pub const CAL_IYEAROFFSETRANGE: u32 = 3;
pub const CAL_SERASTRING: u32 = 4;
pub const CAL_SSHORTDATE: u32 = 5;
pub const CAL_SLONGDATE: u32 = 6;
pub const CAL_SDAYNAME1: u32 = 7;
pub const CAL_SDAYNAME2: u32 = 8;
pub const CAL_SDAYNAME3: u32 = 9;
pub const CAL_SDAYNAME4: u32 = 10;
pub const CAL_SDAYNAME5: u32 = 11;
pub const CAL_SDAYNAME6: u32 = 12;
pub const CAL_SDAYNAME7: u32 = 13;
pub const CAL_SABBREVDAYNAME1: u32 = 14;
pub const CAL_SABBREVDAYNAME2: u32 = 15;
pub const CAL_SABBREVDAYNAME3: u32 = 16;
pub const CAL_SABBREVDAYNAME4: u32 = 17;
pub const CAL_SABBREVDAYNAME5: u32 = 18;
pub const CAL_SABBREVDAYNAME6: u32 = 19;
pub const CAL_SABBREVDAYNAME7: u32 = 20;
pub const CAL_SMONTHNAME1: u32 = 21;
pub const CAL_SMONTHNAME2: u32 = 22;
pub const CAL_SMONTHNAME3: u32 = 23;
pub const CAL_SMONTHNAME4: u32 = 24;
pub const CAL_SMONTHNAME5: u32 = 25;
pub const CAL_SMONTHNAME6: u32 = 26;
pub const CAL_SMONTHNAME7: u32 = 27;
pub const CAL_SMONTHNAME8: u32 = 28;
pub const CAL_SMONTHNAME9: u32 = 29;
pub const CAL_SMONTHNAME10: u32 = 30;
pub const CAL_SMONTHNAME11: u32 = 31;
pub const CAL_SMONTHNAME12: u32 = 32;
pub const CAL_SMONTHNAME13: u32 = 33;
pub const CAL_SABBREVMONTHNAME1: u32 = 34;
pub const CAL_SABBREVMONTHNAME2: u32 = 35;
pub const CAL_SABBREVMONTHNAME3: u32 = 36;
pub const CAL_SABBREVMONTHNAME4: u32 = 37;
pub const CAL_SABBREVMONTHNAME5: u32 = 38;
pub const CAL_SABBREVMONTHNAME6: u32 = 39;
pub const CAL_SABBREVMONTHNAME7: u32 = 40;
pub const CAL_SABBREVMONTHNAME8: u32 = 41;
pub const CAL_SABBREVMONTHNAME9: u32 = 42;
pub const CAL_SABBREVMONTHNAME10: u32 = 43;
pub const CAL_SABBREVMONTHNAME11: u32 = 44;
pub const CAL_SABBREVMONTHNAME12: u32 = 45;
pub const CAL_SABBREVMONTHNAME13: u32 = 46;
pub const CAL_SYEARMONTH: u32 = 47;
pub const CAL_ITWODIGITYEARMAX: u32 = 48;
pub const ENUM_ALL_CALENDARS: u32 = 4294967295;
pub const CAL_GREGORIAN: u32 = 1;
pub const CAL_GREGORIAN_US: u32 = 2;
pub const CAL_JAPAN: u32 = 3;
pub const CAL_TAIWAN: u32 = 4;
pub const CAL_KOREA: u32 = 5;
pub const CAL_HIJRI: u32 = 6;
pub const CAL_THAI: u32 = 7;
pub const CAL_HEBREW: u32 = 8;
pub const CAL_GREGORIAN_ME_FRENCH: u32 = 9;
pub const CAL_GREGORIAN_ARABIC: u32 = 10;
pub const CAL_GREGORIAN_XLIT_ENGLISH: u32 = 11;
pub const CAL_GREGORIAN_XLIT_FRENCH: u32 = 12;
pub const CAL_UMALQURA: u32 = 23;
pub const LGRPID_WESTERN_EUROPE: u32 = 1;
pub const LGRPID_CENTRAL_EUROPE: u32 = 2;
pub const LGRPID_BALTIC: u32 = 3;
pub const LGRPID_GREEK: u32 = 4;
pub const LGRPID_CYRILLIC: u32 = 5;
pub const LGRPID_TURKIC: u32 = 6;
pub const LGRPID_TURKISH: u32 = 6;
pub const LGRPID_JAPANESE: u32 = 7;
pub const LGRPID_KOREAN: u32 = 8;
pub const LGRPID_TRADITIONAL_CHINESE: u32 = 9;
pub const LGRPID_SIMPLIFIED_CHINESE: u32 = 10;
pub const LGRPID_THAI: u32 = 11;
pub const LGRPID_HEBREW: u32 = 12;
pub const LGRPID_ARABIC: u32 = 13;
pub const LGRPID_VIETNAMESE: u32 = 14;
pub const LGRPID_INDIC: u32 = 15;
pub const LGRPID_GEORGIAN: u32 = 16;
pub const LGRPID_ARMENIAN: u32 = 17;
pub const GEOID_NOT_AVAILABLE: i32 = -1;
pub const RIGHT_ALT_PRESSED: u32 = 1;
pub const LEFT_ALT_PRESSED: u32 = 2;
pub const RIGHT_CTRL_PRESSED: u32 = 4;
pub const LEFT_CTRL_PRESSED: u32 = 8;
pub const SHIFT_PRESSED: u32 = 16;
pub const NUMLOCK_ON: u32 = 32;
pub const SCROLLLOCK_ON: u32 = 64;
pub const CAPSLOCK_ON: u32 = 128;
pub const ENHANCED_KEY: u32 = 256;
pub const NLS_DBCSCHAR: u32 = 65536;
pub const NLS_ALPHANUMERIC: u32 = 0;
pub const NLS_KATAKANA: u32 = 131072;
pub const NLS_HIRAGANA: u32 = 262144;
pub const NLS_ROMAN: u32 = 4194304;
pub const NLS_IME_CONVERSION: u32 = 8388608;
pub const NLS_IME_DISABLE: u32 = 536870912;
pub const FROM_LEFT_1ST_BUTTON_PRESSED: u32 = 1;
pub const RIGHTMOST_BUTTON_PRESSED: u32 = 2;
pub const FROM_LEFT_2ND_BUTTON_PRESSED: u32 = 4;
pub const FROM_LEFT_3RD_BUTTON_PRESSED: u32 = 8;
pub const FROM_LEFT_4TH_BUTTON_PRESSED: u32 = 16;
pub const MOUSE_MOVED: u32 = 1;
pub const DOUBLE_CLICK: u32 = 2;
pub const MOUSE_WHEELED: u32 = 4;
pub const KEY_EVENT: u32 = 1;
pub const MOUSE_EVENT: u32 = 2;
pub const WINDOW_BUFFER_SIZE_EVENT: u32 = 4;
pub const MENU_EVENT: u32 = 8;
pub const FOCUS_EVENT: u32 = 16;
pub const FOREGROUND_BLUE: u32 = 1;
pub const FOREGROUND_GREEN: u32 = 2;
pub const FOREGROUND_RED: u32 = 4;
pub const FOREGROUND_INTENSITY: u32 = 8;
pub const BACKGROUND_BLUE: u32 = 16;
pub const BACKGROUND_GREEN: u32 = 32;
pub const BACKGROUND_RED: u32 = 64;
pub const BACKGROUND_INTENSITY: u32 = 128;
pub const COMMON_LVB_LEADING_BYTE: u32 = 256;
pub const COMMON_LVB_TRAILING_BYTE: u32 = 512;
pub const COMMON_LVB_GRID_HORIZONTAL: u32 = 1024;
pub const COMMON_LVB_GRID_LVERTICAL: u32 = 2048;
pub const COMMON_LVB_GRID_RVERTICAL: u32 = 4096;
pub const COMMON_LVB_REVERSE_VIDEO: u32 = 16384;
pub const COMMON_LVB_UNDERSCORE: u32 = 32768;
pub const COMMON_LVB_SBCSDBCS: u32 = 768;
pub const CONSOLE_NO_SELECTION: u32 = 0;
pub const CONSOLE_SELECTION_IN_PROGRESS: u32 = 1;
pub const CONSOLE_SELECTION_NOT_EMPTY: u32 = 2;
pub const CONSOLE_MOUSE_SELECTION: u32 = 4;
pub const CONSOLE_MOUSE_DOWN: u32 = 8;
pub const CTRL_C_EVENT: u32 = 0;
pub const CTRL_BREAK_EVENT: u32 = 1;
pub const CTRL_CLOSE_EVENT: u32 = 2;
pub const CTRL_LOGOFF_EVENT: u32 = 5;
pub const CTRL_SHUTDOWN_EVENT: u32 = 6;
pub const ENABLE_PROCESSED_INPUT: u32 = 1;
pub const ENABLE_LINE_INPUT: u32 = 2;
pub const ENABLE_ECHO_INPUT: u32 = 4;
pub const ENABLE_WINDOW_INPUT: u32 = 8;
pub const ENABLE_MOUSE_INPUT: u32 = 16;
pub const ENABLE_INSERT_MODE: u32 = 32;
pub const ENABLE_QUICK_EDIT_MODE: u32 = 64;
pub const ENABLE_EXTENDED_FLAGS: u32 = 128;
pub const ENABLE_AUTO_POSITION: u32 = 256;
pub const ENABLE_VIRTUAL_TERMINAL_INPUT: u32 = 512;
pub const ENABLE_PROCESSED_OUTPUT: u32 = 1;
pub const ENABLE_WRAP_AT_EOL_OUTPUT: u32 = 2;
pub const ENABLE_VIRTUAL_TERMINAL_PROCESSING: u32 = 4;
pub const DISABLE_NEWLINE_AUTO_RETURN: u32 = 8;
pub const ENABLE_LVB_GRID_WORLDWIDE: u32 = 16;
pub const CONSOLE_TEXTMODE_BUFFER: u32 = 1;
pub const CONSOLE_FULLSCREEN: u32 = 1;
pub const CONSOLE_FULLSCREEN_HARDWARE: u32 = 2;
pub const CONSOLE_FULLSCREEN_MODE: u32 = 1;
pub const CONSOLE_WINDOWED_MODE: u32 = 2;
pub const VS_VERSION_INFO: u32 = 1;
pub const VS_USER_DEFINED: u32 = 100;
pub const VFFF_ISSHAREDFILE: u32 = 1;
pub const VFF_CURNEDEST: u32 = 1;
pub const VFF_FILEINUSE: u32 = 2;
pub const VFF_BUFFTOOSMALL: u32 = 4;
pub const VIFF_FORCEINSTALL: u32 = 1;
pub const VIFF_DONTDELETEOLD: u32 = 2;
pub const RRF_RT_REG_NONE: u32 = 1;
pub const RRF_RT_REG_SZ: u32 = 2;
pub const RRF_RT_REG_EXPAND_SZ: u32 = 4;
pub const RRF_RT_REG_BINARY: u32 = 8;
pub const RRF_RT_REG_DWORD: u32 = 16;
pub const RRF_RT_REG_MULTI_SZ: u32 = 32;
pub const RRF_RT_REG_QWORD: u32 = 64;
pub const RRF_RT_DWORD: u32 = 24;
pub const RRF_RT_QWORD: u32 = 72;
pub const RRF_RT_ANY: u32 = 65535;
pub const RRF_NOEXPAND: u32 = 268435456;
pub const RRF_ZEROONFAILURE: u32 = 536870912;
pub const REG_PROCESS_APPKEY: u32 = 1;
pub const PROVIDER_KEEPS_VALUE_LENGTH: u32 = 1;
pub const REG_MUI_STRING_TRUNCATE: u32 = 1;
pub const REG_SECURE_CONNECTION: u32 = 1;
pub const SHTDN_REASON_FLAG_COMMENT_REQUIRED: u32 = 16777216;
pub const SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED: u32 = 33554432;
pub const SHTDN_REASON_FLAG_CLEAN_UI: u32 = 67108864;
pub const SHTDN_REASON_FLAG_DIRTY_UI: u32 = 134217728;
pub const SHTDN_REASON_FLAG_USER_DEFINED: u32 = 1073741824;
pub const SHTDN_REASON_FLAG_PLANNED: u32 = 2147483648;
pub const SHTDN_REASON_MAJOR_OTHER: u32 = 0;
pub const SHTDN_REASON_MAJOR_NONE: u32 = 0;
pub const SHTDN_REASON_MAJOR_HARDWARE: u32 = 65536;
pub const SHTDN_REASON_MAJOR_OPERATINGSYSTEM: u32 = 131072;
pub const SHTDN_REASON_MAJOR_SOFTWARE: u32 = 196608;
pub const SHTDN_REASON_MAJOR_APPLICATION: u32 = 262144;
pub const SHTDN_REASON_MAJOR_SYSTEM: u32 = 327680;
pub const SHTDN_REASON_MAJOR_POWER: u32 = 393216;
pub const SHTDN_REASON_MAJOR_LEGACY_API: u32 = 458752;
pub const SHTDN_REASON_MINOR_OTHER: u32 = 0;
pub const SHTDN_REASON_MINOR_NONE: u32 = 255;
pub const SHTDN_REASON_MINOR_MAINTENANCE: u32 = 1;
pub const SHTDN_REASON_MINOR_INSTALLATION: u32 = 2;
pub const SHTDN_REASON_MINOR_UPGRADE: u32 = 3;
pub const SHTDN_REASON_MINOR_RECONFIG: u32 = 4;
pub const SHTDN_REASON_MINOR_HUNG: u32 = 5;
pub const SHTDN_REASON_MINOR_UNSTABLE: u32 = 6;
pub const SHTDN_REASON_MINOR_DISK: u32 = 7;
pub const SHTDN_REASON_MINOR_PROCESSOR: u32 = 8;
pub const SHTDN_REASON_MINOR_NETWORKCARD: u32 = 9;
pub const SHTDN_REASON_MINOR_POWER_SUPPLY: u32 = 10;
pub const SHTDN_REASON_MINOR_CORDUNPLUGGED: u32 = 11;
pub const SHTDN_REASON_MINOR_ENVIRONMENT: u32 = 12;
pub const SHTDN_REASON_MINOR_HARDWARE_DRIVER: u32 = 13;
pub const SHTDN_REASON_MINOR_OTHERDRIVER: u32 = 14;
pub const SHTDN_REASON_MINOR_BLUESCREEN: u32 = 15;
pub const SHTDN_REASON_MINOR_SERVICEPACK: u32 = 16;
pub const SHTDN_REASON_MINOR_HOTFIX: u32 = 17;
pub const SHTDN_REASON_MINOR_SECURITYFIX: u32 = 18;
pub const SHTDN_REASON_MINOR_SECURITY: u32 = 19;
pub const SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY: u32 = 20;
pub const SHTDN_REASON_MINOR_WMI: u32 = 21;
pub const SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL: u32 = 22;
pub const SHTDN_REASON_MINOR_HOTFIX_UNINSTALL: u32 = 23;
pub const SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL: u32 = 24;
pub const SHTDN_REASON_MINOR_MMC: u32 = 25;
pub const SHTDN_REASON_MINOR_SYSTEMRESTORE: u32 = 26;
pub const SHTDN_REASON_MINOR_TERMSRV: u32 = 32;
pub const SHTDN_REASON_MINOR_DC_PROMOTION: u32 = 33;
pub const SHTDN_REASON_MINOR_DC_DEMOTION: u32 = 34;
pub const SHTDN_REASON_UNKNOWN: u32 = 255;
pub const SHTDN_REASON_LEGACY_API: u32 = 2147942400;
pub const SHTDN_REASON_VALID_BIT_MASK: u32 = 3238002687;
pub const PCLEANUI: u32 = 2214592512;
pub const UCLEANUI: u32 = 67108864;
pub const PDIRTYUI: u32 = 2281701376;
pub const UDIRTYUI: u32 = 134217728;
pub const MAX_REASON_NAME_LEN: u32 = 64;
pub const MAX_REASON_DESC_LEN: u32 = 256;
pub const MAX_REASON_BUGID_LEN: u32 = 32;
pub const MAX_REASON_COMMENT_LEN: u32 = 512;
pub const SHUTDOWN_TYPE_LEN: u32 = 32;
pub const POLICY_SHOWREASONUI_NEVER: u32 = 0;
pub const POLICY_SHOWREASONUI_ALWAYS: u32 = 1;
pub const POLICY_SHOWREASONUI_WORKSTATIONONLY: u32 = 2;
pub const POLICY_SHOWREASONUI_SERVERONLY: u32 = 3;
pub const SNAPSHOT_POLICY_NEVER: u32 = 0;
pub const SNAPSHOT_POLICY_ALWAYS: u32 = 1;
pub const SNAPSHOT_POLICY_UNPLANNED: u32 = 2;
pub const MAX_NUM_REASONS: u32 = 256;
pub const REASON_SWINSTALL: u32 = 196610;
pub const REASON_HWINSTALL: u32 = 65538;
pub const REASON_SERVICEHANG: u32 = 196613;
pub const REASON_UNSTABLE: u32 = 327686;
pub const REASON_SWHWRECONF: u32 = 196612;
pub const REASON_OTHER: u32 = 0;
pub const REASON_UNKNOWN: u32 = 255;
pub const REASON_LEGACY_API: u32 = 2147942400;
pub const REASON_PLANNED_FLAG: u32 = 2147483648;
pub const MAX_SHUTDOWN_TIMEOUT: u32 = 315360000;
pub const WNNC_NET_MSNET: u32 = 65536;
pub const WNNC_NET_SMB: u32 = 131072;
pub const WNNC_NET_NETWARE: u32 = 196608;
pub const WNNC_NET_VINES: u32 = 262144;
pub const WNNC_NET_10NET: u32 = 327680;
pub const WNNC_NET_LOCUS: u32 = 393216;
pub const WNNC_NET_SUN_PC_NFS: u32 = 458752;
pub const WNNC_NET_LANSTEP: u32 = 524288;
pub const WNNC_NET_9TILES: u32 = 589824;
pub const WNNC_NET_LANTASTIC: u32 = 655360;
pub const WNNC_NET_AS400: u32 = 720896;
pub const WNNC_NET_FTP_NFS: u32 = 786432;
pub const WNNC_NET_PATHWORKS: u32 = 851968;
pub const WNNC_NET_LIFENET: u32 = 917504;
pub const WNNC_NET_POWERLAN: u32 = 983040;
pub const WNNC_NET_BWNFS: u32 = 1048576;
pub const WNNC_NET_COGENT: u32 = 1114112;
pub const WNNC_NET_FARALLON: u32 = 1179648;
pub const WNNC_NET_APPLETALK: u32 = 1245184;
pub const WNNC_NET_INTERGRAPH: u32 = 1310720;
pub const WNNC_NET_SYMFONET: u32 = 1376256;
pub const WNNC_NET_CLEARCASE: u32 = 1441792;
pub const WNNC_NET_FRONTIER: u32 = 1507328;
pub const WNNC_NET_BMC: u32 = 1572864;
pub const WNNC_NET_DCE: u32 = 1638400;
pub const WNNC_NET_AVID: u32 = 1703936;
pub const WNNC_NET_DOCUSPACE: u32 = 1769472;
pub const WNNC_NET_MANGOSOFT: u32 = 1835008;
pub const WNNC_NET_SERNET: u32 = 1900544;
pub const WNNC_NET_RIVERFRONT1: u32 = 1966080;
pub const WNNC_NET_RIVERFRONT2: u32 = 2031616;
pub const WNNC_NET_DECORB: u32 = 2097152;
pub const WNNC_NET_PROTSTOR: u32 = 2162688;
pub const WNNC_NET_FJ_REDIR: u32 = 2228224;
pub const WNNC_NET_DISTINCT: u32 = 2293760;
pub const WNNC_NET_TWINS: u32 = 2359296;
pub const WNNC_NET_RDR2SAMPLE: u32 = 2424832;
pub const WNNC_NET_CSC: u32 = 2490368;
pub const WNNC_NET_3IN1: u32 = 2555904;
pub const WNNC_NET_EXTENDNET: u32 = 2686976;
pub const WNNC_NET_STAC: u32 = 2752512;
pub const WNNC_NET_FOXBAT: u32 = 2818048;
pub const WNNC_NET_YAHOO: u32 = 2883584;
pub const WNNC_NET_EXIFS: u32 = 2949120;
pub const WNNC_NET_DAV: u32 = 3014656;
pub const WNNC_NET_KNOWARE: u32 = 3080192;
pub const WNNC_NET_OBJECT_DIRE: u32 = 3145728;
pub const WNNC_NET_MASFAX: u32 = 3211264;
pub const WNNC_NET_HOB_NFS: u32 = 3276800;
pub const WNNC_NET_SHIVA: u32 = 3342336;
pub const WNNC_NET_IBMAL: u32 = 3407872;
pub const WNNC_NET_LOCK: u32 = 3473408;
pub const WNNC_NET_TERMSRV: u32 = 3538944;
pub const WNNC_NET_SRT: u32 = 3604480;
pub const WNNC_NET_QUINCY: u32 = 3670016;
pub const WNNC_NET_OPENAFS: u32 = 3735552;
pub const WNNC_NET_AVID1: u32 = 3801088;
pub const WNNC_NET_DFS: u32 = 3866624;
pub const WNNC_NET_KWNP: u32 = 3932160;
pub const WNNC_NET_ZENWORKS: u32 = 3997696;
pub const WNNC_NET_DRIVEONWEB: u32 = 4063232;
pub const WNNC_NET_VMWARE: u32 = 4128768;
pub const WNNC_NET_RSFX: u32 = 4194304;
pub const WNNC_NET_MFILES: u32 = 4259840;
pub const WNNC_NET_MS_NFS: u32 = 4325376;
pub const WNNC_NET_GOOGLE: u32 = 4390912;
pub const WNNC_NET_NDFS: u32 = 4456448;
pub const WNNC_CRED_MANAGER: u32 = 4294901760;
pub const RESOURCE_CONNECTED: u32 = 1;
pub const RESOURCE_GLOBALNET: u32 = 2;
pub const RESOURCE_REMEMBERED: u32 = 3;
pub const RESOURCE_RECENT: u32 = 4;
pub const RESOURCE_CONTEXT: u32 = 5;
pub const RESOURCETYPE_ANY: u32 = 0;
pub const RESOURCETYPE_DISK: u32 = 1;
pub const RESOURCETYPE_PRINT: u32 = 2;
pub const RESOURCETYPE_RESERVED: u32 = 8;
pub const RESOURCETYPE_UNKNOWN: u32 = 4294967295;
pub const RESOURCEUSAGE_CONNECTABLE: u32 = 1;
pub const RESOURCEUSAGE_CONTAINER: u32 = 2;
pub const RESOURCEUSAGE_NOLOCALDEVICE: u32 = 4;
pub const RESOURCEUSAGE_SIBLING: u32 = 8;
pub const RESOURCEUSAGE_ATTACHED: u32 = 16;
pub const RESOURCEUSAGE_ALL: u32 = 19;
pub const RESOURCEUSAGE_RESERVED: u32 = 2147483648;
pub const RESOURCEDISPLAYTYPE_GENERIC: u32 = 0;
pub const RESOURCEDISPLAYTYPE_DOMAIN: u32 = 1;
pub const RESOURCEDISPLAYTYPE_SERVER: u32 = 2;
pub const RESOURCEDISPLAYTYPE_SHARE: u32 = 3;
pub const RESOURCEDISPLAYTYPE_FILE: u32 = 4;
pub const RESOURCEDISPLAYTYPE_GROUP: u32 = 5;
pub const RESOURCEDISPLAYTYPE_NETWORK: u32 = 6;
pub const RESOURCEDISPLAYTYPE_ROOT: u32 = 7;
pub const RESOURCEDISPLAYTYPE_SHAREADMIN: u32 = 8;
pub const RESOURCEDISPLAYTYPE_DIRECTORY: u32 = 9;
pub const RESOURCEDISPLAYTYPE_TREE: u32 = 10;
pub const RESOURCEDISPLAYTYPE_NDSCONTAINER: u32 = 11;
pub const NETPROPERTY_PERSISTENT: u32 = 1;
pub const CONNECT_UPDATE_PROFILE: u32 = 1;
pub const CONNECT_UPDATE_RECENT: u32 = 2;
pub const CONNECT_TEMPORARY: u32 = 4;
pub const CONNECT_INTERACTIVE: u32 = 8;
pub const CONNECT_PROMPT: u32 = 16;
pub const CONNECT_NEED_DRIVE: u32 = 32;
pub const CONNECT_REFCOUNT: u32 = 64;
pub const CONNECT_REDIRECT: u32 = 128;
pub const CONNECT_LOCALDRIVE: u32 = 256;
pub const CONNECT_CURRENT_MEDIA: u32 = 512;
pub const CONNECT_DEFERRED: u32 = 1024;
pub const CONNECT_RESERVED: u32 = 4278190080;
pub const CONNECT_COMMANDLINE: u32 = 2048;
pub const CONNECT_CMD_SAVECRED: u32 = 4096;
pub const CONNDLG_RO_PATH: u32 = 1;
pub const CONNDLG_CONN_POINT: u32 = 2;
pub const CONNDLG_USE_MRU: u32 = 4;
pub const CONNDLG_HIDE_BOX: u32 = 8;
pub const CONNDLG_PERSIST: u32 = 16;
pub const CONNDLG_NOT_PERSIST: u32 = 32;
pub const DISC_UPDATE_PROFILE: u32 = 1;
pub const DISC_NO_FORCE: u32 = 64;
pub const UNIVERSAL_NAME_INFO_LEVEL: u32 = 1;
pub const REMOTE_NAME_INFO_LEVEL: u32 = 2;
pub const WNFMT_MULTILINE: u32 = 1;
pub const WNFMT_ABBREVIATED: u32 = 2;
pub const WNFMT_INENUM: u32 = 16;
pub const WNFMT_CONNECTION: u32 = 32;
pub const NETINFO_DLL16: u32 = 1;
pub const NETINFO_DISKRED: u32 = 4;
pub const NETINFO_PRINTERRED: u32 = 8;
pub const RP_LOGON: u32 = 1;
pub const RP_INIFILE: u32 = 2;
pub const PP_DISPLAYERRORS: u32 = 1;
pub const WNCON_FORNETCARD: u32 = 1;
pub const WNCON_NOTROUTED: u32 = 2;
pub const WNCON_SLOWLINK: u32 = 4;
pub const WNCON_DYNAMIC: u32 = 8;
pub const _STRALIGN_USE_SECURE_CRT: u32 = 0;
pub const SERVICES_ACTIVE_DATABASEW: &'static [u8; 15usize] = b"ServicesActive\0";
pub const SERVICES_FAILED_DATABASEW: &'static [u8; 15usize] = b"ServicesFailed\0";
pub const SERVICES_ACTIVE_DATABASEA: &'static [u8; 15usize] = b"ServicesActive\0";
pub const SERVICES_FAILED_DATABASEA: &'static [u8; 15usize] = b"ServicesFailed\0";
pub const SC_GROUP_IDENTIFIERW: u8 = 43u8;
pub const SC_GROUP_IDENTIFIERA: u8 = 43u8;
pub const SERVICE_NO_CHANGE: u32 = 4294967295;
pub const SERVICE_ACTIVE: u32 = 1;
pub const SERVICE_INACTIVE: u32 = 2;
pub const SERVICE_STATE_ALL: u32 = 3;
pub const SERVICE_CONTROL_STOP: u32 = 1;
pub const SERVICE_CONTROL_PAUSE: u32 = 2;
pub const SERVICE_CONTROL_CONTINUE: u32 = 3;
pub const SERVICE_CONTROL_INTERROGATE: u32 = 4;
pub const SERVICE_CONTROL_SHUTDOWN: u32 = 5;
pub const SERVICE_CONTROL_PARAMCHANGE: u32 = 6;
pub const SERVICE_CONTROL_NETBINDADD: u32 = 7;
pub const SERVICE_CONTROL_NETBINDREMOVE: u32 = 8;
pub const SERVICE_CONTROL_NETBINDENABLE: u32 = 9;
pub const SERVICE_CONTROL_NETBINDDISABLE: u32 = 10;
pub const SERVICE_CONTROL_DEVICEEVENT: u32 = 11;
pub const SERVICE_CONTROL_HARDWAREPROFILECHANGE: u32 = 12;
pub const SERVICE_CONTROL_POWEREVENT: u32 = 13;
pub const SERVICE_CONTROL_SESSIONCHANGE: u32 = 14;
pub const SERVICE_STOPPED: u32 = 1;
pub const SERVICE_START_PENDING: u32 = 2;
pub const SERVICE_STOP_PENDING: u32 = 3;
pub const SERVICE_RUNNING: u32 = 4;
pub const SERVICE_CONTINUE_PENDING: u32 = 5;
pub const SERVICE_PAUSE_PENDING: u32 = 6;
pub const SERVICE_PAUSED: u32 = 7;
pub const SERVICE_ACCEPT_STOP: u32 = 1;
pub const SERVICE_ACCEPT_PAUSE_CONTINUE: u32 = 2;
pub const SERVICE_ACCEPT_SHUTDOWN: u32 = 4;
pub const SERVICE_ACCEPT_PARAMCHANGE: u32 = 8;
pub const SERVICE_ACCEPT_NETBINDCHANGE: u32 = 16;
pub const SERVICE_ACCEPT_HARDWAREPROFILECHANGE: u32 = 32;
pub const SERVICE_ACCEPT_POWEREVENT: u32 = 64;
pub const SERVICE_ACCEPT_SESSIONCHANGE: u32 = 128;
pub const SC_MANAGER_CONNECT: u32 = 1;
pub const SC_MANAGER_CREATE_SERVICE: u32 = 2;
pub const SC_MANAGER_ENUMERATE_SERVICE: u32 = 4;
pub const SC_MANAGER_LOCK: u32 = 8;
pub const SC_MANAGER_QUERY_LOCK_STATUS: u32 = 16;
pub const SC_MANAGER_MODIFY_BOOT_CONFIG: u32 = 32;
pub const SERVICE_QUERY_CONFIG: u32 = 1;
pub const SERVICE_CHANGE_CONFIG: u32 = 2;
pub const SERVICE_QUERY_STATUS: u32 = 4;
pub const SERVICE_ENUMERATE_DEPENDENTS: u32 = 8;
pub const SERVICE_START: u32 = 16;
pub const SERVICE_STOP: u32 = 32;
pub const SERVICE_PAUSE_CONTINUE: u32 = 64;
pub const SERVICE_INTERROGATE: u32 = 128;
pub const SERVICE_USER_DEFINED_CONTROL: u32 = 256;
pub const SERVICE_RUNS_IN_SYSTEM_PROCESS: u32 = 1;
pub const SERVICE_CONFIG_DESCRIPTION: u32 = 1;
pub const SERVICE_CONFIG_FAILURE_ACTIONS: u32 = 2;
pub const DIALOPTION_BILLING: u32 = 64;
pub const DIALOPTION_QUIET: u32 = 128;
pub const DIALOPTION_DIALTONE: u32 = 256;
pub const MDMVOLFLAG_LOW: u32 = 1;
pub const MDMVOLFLAG_MEDIUM: u32 = 2;
pub const MDMVOLFLAG_HIGH: u32 = 4;
pub const MDMVOL_LOW: u32 = 0;
pub const MDMVOL_MEDIUM: u32 = 1;
pub const MDMVOL_HIGH: u32 = 2;
pub const MDMSPKRFLAG_OFF: u32 = 1;
pub const MDMSPKRFLAG_DIAL: u32 = 2;
pub const MDMSPKRFLAG_ON: u32 = 4;
pub const MDMSPKRFLAG_CALLSETUP: u32 = 8;
pub const MDMSPKR_OFF: u32 = 0;
pub const MDMSPKR_DIAL: u32 = 1;
pub const MDMSPKR_ON: u32 = 2;
pub const MDMSPKR_CALLSETUP: u32 = 3;
pub const MDM_COMPRESSION: u32 = 1;
pub const MDM_ERROR_CONTROL: u32 = 2;
pub const MDM_FORCED_EC: u32 = 4;
pub const MDM_CELLULAR: u32 = 8;
pub const MDM_FLOWCONTROL_HARD: u32 = 16;
pub const MDM_FLOWCONTROL_SOFT: u32 = 32;
pub const MDM_CCITT_OVERRIDE: u32 = 64;
pub const MDM_SPEED_ADJUST: u32 = 128;
pub const MDM_TONE_DIAL: u32 = 256;
pub const MDM_BLIND_DIAL: u32 = 512;
pub const MDM_V23_OVERRIDE: u32 = 1024;
pub const MDM_DIAGNOSTICS: u32 = 2048;
pub const MDM_MASK_BEARERMODE: u32 = 61440;
pub const MDM_SHIFT_BEARERMODE: u32 = 12;
pub const MDM_MASK_PROTOCOLID: u32 = 983040;
pub const MDM_SHIFT_PROTOCOLID: u32 = 16;
pub const MDM_MASK_PROTOCOLDATA: u32 = 267386880;
pub const MDM_SHIFT_PROTOCOLDATA: u32 = 20;
pub const MDM_MASK_PROTOCOLINFO: u32 = 268369920;
pub const MDM_SHIFT_PROTOCOLINFO: u32 = 16;
pub const MDM_MASK_EXTENDEDINFO: u32 = 268431360;
pub const MDM_SHIFT_EXTENDEDINFO: u32 = 12;
pub const MDM_BEARERMODE_ANALOG: u32 = 0;
pub const MDM_BEARERMODE_ISDN: u32 = 1;
pub const MDM_BEARERMODE_GSM: u32 = 2;
pub const MDM_PROTOCOLID_DEFAULT: u32 = 0;
pub const MDM_PROTOCOLID_HDLCPPP: u32 = 1;
pub const MDM_PROTOCOLID_V128: u32 = 2;
pub const MDM_PROTOCOLID_X75: u32 = 3;
pub const MDM_PROTOCOLID_V110: u32 = 4;
pub const MDM_PROTOCOLID_V120: u32 = 5;
pub const MDM_PROTOCOLID_AUTO: u32 = 6;
pub const MDM_PROTOCOLID_ANALOG: u32 = 7;
pub const MDM_PROTOCOLID_GPRS: u32 = 8;
pub const MDM_PROTOCOLID_PIAFS: u32 = 9;
pub const MDM_SHIFT_HDLCPPP_SPEED: u32 = 0;
pub const MDM_MASK_HDLCPPP_SPEED: u32 = 7;
pub const MDM_HDLCPPP_SPEED_DEFAULT: u32 = 0;
pub const MDM_HDLCPPP_SPEED_64K: u32 = 1;
pub const MDM_HDLCPPP_SPEED_56K: u32 = 2;
pub const MDM_SHIFT_HDLCPPP_AUTH: u32 = 3;
pub const MDM_MASK_HDLCPPP_AUTH: u32 = 56;
pub const MDM_HDLCPPP_AUTH_DEFAULT: u32 = 0;
pub const MDM_HDLCPPP_AUTH_NONE: u32 = 1;
pub const MDM_HDLCPPP_AUTH_PAP: u32 = 2;
pub const MDM_HDLCPPP_AUTH_CHAP: u32 = 3;
pub const MDM_HDLCPPP_AUTH_MSCHAP: u32 = 4;
pub const MDM_SHIFT_HDLCPPP_ML: u32 = 6;
pub const MDM_MASK_HDLCPPP_ML: u32 = 192;
pub const MDM_HDLCPPP_ML_DEFAULT: u32 = 0;
pub const MDM_HDLCPPP_ML_NONE: u32 = 1;
pub const MDM_HDLCPPP_ML_2: u32 = 2;
pub const MDM_SHIFT_V120_SPEED: u32 = 0;
pub const MDM_MASK_V120_SPEED: u32 = 7;
pub const MDM_V120_SPEED_DEFAULT: u32 = 0;
pub const MDM_V120_SPEED_64K: u32 = 1;
pub const MDM_V120_SPEED_56K: u32 = 2;
pub const MDM_SHIFT_V120_ML: u32 = 6;
pub const MDM_MASK_V120_ML: u32 = 192;
pub const MDM_V120_ML_DEFAULT: u32 = 0;
pub const MDM_V120_ML_NONE: u32 = 1;
pub const MDM_V120_ML_2: u32 = 2;
pub const MDM_SHIFT_X75_DATA: u32 = 0;
pub const MDM_MASK_X75_DATA: u32 = 7;
pub const MDM_X75_DATA_DEFAULT: u32 = 0;
pub const MDM_X75_DATA_64K: u32 = 1;
pub const MDM_X75_DATA_128K: u32 = 2;
pub const MDM_X75_DATA_T_70: u32 = 3;
pub const MDM_X75_DATA_BTX: u32 = 4;
pub const MDM_SHIFT_V110_SPEED: u32 = 0;
pub const MDM_MASK_V110_SPEED: u32 = 15;
pub const MDM_V110_SPEED_DEFAULT: u32 = 0;
pub const MDM_V110_SPEED_1DOT2K: u32 = 1;
pub const MDM_V110_SPEED_2DOT4K: u32 = 2;
pub const MDM_V110_SPEED_4DOT8K: u32 = 3;
pub const MDM_V110_SPEED_9DOT6K: u32 = 4;
pub const MDM_V110_SPEED_12DOT0K: u32 = 5;
pub const MDM_V110_SPEED_14DOT4K: u32 = 6;
pub const MDM_V110_SPEED_19DOT2K: u32 = 7;
pub const MDM_V110_SPEED_28DOT8K: u32 = 8;
pub const MDM_V110_SPEED_38DOT4K: u32 = 9;
pub const MDM_V110_SPEED_57DOT6K: u32 = 10;
pub const MDM_SHIFT_AUTO_SPEED: u32 = 0;
pub const MDM_MASK_AUTO_SPEED: u32 = 7;
pub const MDM_AUTO_SPEED_DEFAULT: u32 = 0;
pub const MDM_SHIFT_AUTO_ML: u32 = 6;
pub const MDM_MASK_AUTO_ML: u32 = 192;
pub const MDM_AUTO_ML_DEFAULT: u32 = 0;
pub const MDM_AUTO_ML_NONE: u32 = 1;
pub const MDM_AUTO_ML_2: u32 = 2;
pub const MDM_ANALOG_RLP_ON: u32 = 0;
pub const MDM_ANALOG_RLP_OFF: u32 = 1;
pub const MDM_ANALOG_V34: u32 = 2;
pub const MDM_PIAFS_INCOMING: u32 = 0;
pub const MDM_PIAFS_OUTGOING: u32 = 1;
pub const STYLE_DESCRIPTION_SIZE: u32 = 32;
pub const IMEMENUITEM_STRING_SIZE: u32 = 80;
pub const IMC_GETCANDIDATEPOS: u32 = 7;
pub const IMC_SETCANDIDATEPOS: u32 = 8;
pub const IMC_GETCOMPOSITIONFONT: u32 = 9;
pub const IMC_SETCOMPOSITIONFONT: u32 = 10;
pub const IMC_GETCOMPOSITIONWINDOW: u32 = 11;
pub const IMC_SETCOMPOSITIONWINDOW: u32 = 12;
pub const IMC_GETSTATUSWINDOWPOS: u32 = 15;
pub const IMC_SETSTATUSWINDOWPOS: u32 = 16;
pub const IMC_CLOSESTATUSWINDOW: u32 = 33;
pub const IMC_OPENSTATUSWINDOW: u32 = 34;
pub const NI_OPENCANDIDATE: u32 = 16;
pub const NI_CLOSECANDIDATE: u32 = 17;
pub const NI_SELECTCANDIDATESTR: u32 = 18;
pub const NI_CHANGECANDIDATELIST: u32 = 19;
pub const NI_FINALIZECONVERSIONRESULT: u32 = 20;
pub const NI_COMPOSITIONSTR: u32 = 21;
pub const NI_SETCANDIDATE_PAGESTART: u32 = 22;
pub const NI_SETCANDIDATE_PAGESIZE: u32 = 23;
pub const NI_IMEMENUSELECTED: u32 = 24;
pub const ISC_SHOWUICANDIDATEWINDOW: u32 = 1;
pub const ISC_SHOWUICOMPOSITIONWINDOW: u32 = 2147483648;
pub const ISC_SHOWUIGUIDELINE: u32 = 1073741824;
pub const ISC_SHOWUIALLCANDIDATEWINDOW: u32 = 15;
pub const ISC_SHOWUIALL: u32 = 3221225487;
pub const CPS_COMPLETE: u32 = 1;
pub const CPS_CONVERT: u32 = 2;
pub const CPS_REVERT: u32 = 3;
pub const CPS_CANCEL: u32 = 4;
pub const MOD_LEFT: u32 = 32768;
pub const MOD_RIGHT: u32 = 16384;
pub const MOD_ON_KEYUP: u32 = 2048;
pub const MOD_IGNORE_ALL_MODIFIER: u32 = 1024;
pub const IME_CHOTKEY_IME_NONIME_TOGGLE: u32 = 16;
pub const IME_CHOTKEY_SHAPE_TOGGLE: u32 = 17;
pub const IME_CHOTKEY_SYMBOL_TOGGLE: u32 = 18;
pub const IME_JHOTKEY_CLOSE_OPEN: u32 = 48;
pub const IME_KHOTKEY_SHAPE_TOGGLE: u32 = 80;
pub const IME_KHOTKEY_HANJACONVERT: u32 = 81;
pub const IME_KHOTKEY_ENGLISH: u32 = 82;
pub const IME_THOTKEY_IME_NONIME_TOGGLE: u32 = 112;
pub const IME_THOTKEY_SHAPE_TOGGLE: u32 = 113;
pub const IME_THOTKEY_SYMBOL_TOGGLE: u32 = 114;
pub const IME_HOTKEY_DSWITCH_FIRST: u32 = 256;
pub const IME_HOTKEY_DSWITCH_LAST: u32 = 287;
pub const IME_HOTKEY_PRIVATE_FIRST: u32 = 512;
pub const IME_ITHOTKEY_RESEND_RESULTSTR: u32 = 512;
pub const IME_ITHOTKEY_PREVIOUS_COMPOSITION: u32 = 513;
pub const IME_ITHOTKEY_UISTYLE_TOGGLE: u32 = 514;
pub const IME_ITHOTKEY_RECONVERTSTRING: u32 = 515;
pub const IME_HOTKEY_PRIVATE_LAST: u32 = 543;
pub const GCS_COMPREADSTR: u32 = 1;
pub const GCS_COMPREADATTR: u32 = 2;
pub const GCS_COMPREADCLAUSE: u32 = 4;
pub const GCS_COMPSTR: u32 = 8;
pub const GCS_COMPATTR: u32 = 16;
pub const GCS_COMPCLAUSE: u32 = 32;
pub const GCS_CURSORPOS: u32 = 128;
pub const GCS_DELTASTART: u32 = 256;
pub const GCS_RESULTREADSTR: u32 = 512;
pub const GCS_RESULTREADCLAUSE: u32 = 1024;
pub const GCS_RESULTSTR: u32 = 2048;
pub const GCS_RESULTCLAUSE: u32 = 4096;
pub const CS_INSERTCHAR: u32 = 8192;
pub const CS_NOMOVECARET: u32 = 16384;
pub const IMEVER_0310: u32 = 196618;
pub const IMEVER_0400: u32 = 262144;
pub const IME_PROP_AT_CARET: u32 = 65536;
pub const IME_PROP_SPECIAL_UI: u32 = 131072;
pub const IME_PROP_CANDLIST_START_FROM_1: u32 = 262144;
pub const IME_PROP_UNICODE: u32 = 524288;
pub const IME_PROP_COMPLETE_ON_UNSELECT: u32 = 1048576;
pub const UI_CAP_2700: u32 = 1;
pub const UI_CAP_ROT90: u32 = 2;
pub const UI_CAP_ROTANY: u32 = 4;
pub const SCS_CAP_COMPSTR: u32 = 1;
pub const SCS_CAP_MAKEREAD: u32 = 2;
pub const SCS_CAP_SETRECONVERTSTRING: u32 = 4;
pub const SELECT_CAP_CONVERSION: u32 = 1;
pub const SELECT_CAP_SENTENCE: u32 = 2;
pub const GGL_LEVEL: u32 = 1;
pub const GGL_INDEX: u32 = 2;
pub const GGL_STRING: u32 = 3;
pub const GGL_PRIVATE: u32 = 4;
pub const GL_LEVEL_NOGUIDELINE: u32 = 0;
pub const GL_LEVEL_FATAL: u32 = 1;
pub const GL_LEVEL_ERROR: u32 = 2;
pub const GL_LEVEL_WARNING: u32 = 3;
pub const GL_LEVEL_INFORMATION: u32 = 4;
pub const GL_ID_UNKNOWN: u32 = 0;
pub const GL_ID_NOMODULE: u32 = 1;
pub const GL_ID_NODICTIONARY: u32 = 16;
pub const GL_ID_CANNOTSAVE: u32 = 17;
pub const GL_ID_NOCONVERT: u32 = 32;
pub const GL_ID_TYPINGERROR: u32 = 33;
pub const GL_ID_TOOMANYSTROKE: u32 = 34;
pub const GL_ID_READINGCONFLICT: u32 = 35;
pub const GL_ID_INPUTREADING: u32 = 36;
pub const GL_ID_INPUTRADICAL: u32 = 37;
pub const GL_ID_INPUTCODE: u32 = 38;
pub const GL_ID_INPUTSYMBOL: u32 = 39;
pub const GL_ID_CHOOSECANDIDATE: u32 = 40;
pub const GL_ID_REVERSECONVERSION: u32 = 41;
pub const GL_ID_PRIVATE_FIRST: u32 = 32768;
pub const GL_ID_PRIVATE_LAST: u32 = 65535;
pub const IGP_PROPERTY: u32 = 4;
pub const IGP_CONVERSION: u32 = 8;
pub const IGP_SENTENCE: u32 = 12;
pub const IGP_UI: u32 = 16;
pub const IGP_SETCOMPSTR: u32 = 20;
pub const IGP_SELECT: u32 = 24;
pub const SCS_SETSTR: u32 = 9;
pub const SCS_CHANGEATTR: u32 = 18;
pub const SCS_CHANGECLAUSE: u32 = 36;
pub const SCS_SETRECONVERTSTRING: u32 = 65536;
pub const SCS_QUERYRECONVERTSTRING: u32 = 131072;
pub const ATTR_INPUT: u32 = 0;
pub const ATTR_TARGET_CONVERTED: u32 = 1;
pub const ATTR_CONVERTED: u32 = 2;
pub const ATTR_TARGET_NOTCONVERTED: u32 = 3;
pub const ATTR_INPUT_ERROR: u32 = 4;
pub const ATTR_FIXEDCONVERTED: u32 = 5;
pub const CFS_DEFAULT: u32 = 0;
pub const CFS_RECT: u32 = 1;
pub const CFS_POINT: u32 = 2;
pub const CFS_FORCE_POSITION: u32 = 32;
pub const CFS_CANDIDATEPOS: u32 = 64;
pub const CFS_EXCLUDE: u32 = 128;
pub const GCL_CONVERSION: u32 = 1;
pub const GCL_REVERSECONVERSION: u32 = 2;
pub const GCL_REVERSE_LENGTH: u32 = 3;
pub const IME_CMODE_ALPHANUMERIC: u32 = 0;
pub const IME_CMODE_NATIVE: u32 = 1;
pub const IME_CMODE_CHINESE: u32 = 1;
pub const IME_CMODE_HANGEUL: u32 = 1;
pub const IME_CMODE_HANGUL: u32 = 1;
pub const IME_CMODE_JAPANESE: u32 = 1;
pub const IME_CMODE_KATAKANA: u32 = 2;
pub const IME_CMODE_LANGUAGE: u32 = 3;
pub const IME_CMODE_FULLSHAPE: u32 = 8;
pub const IME_CMODE_ROMAN: u32 = 16;
pub const IME_CMODE_CHARCODE: u32 = 32;
pub const IME_CMODE_HANJACONVERT: u32 = 64;
pub const IME_CMODE_SOFTKBD: u32 = 128;
pub const IME_CMODE_NOCONVERSION: u32 = 256;
pub const IME_CMODE_EUDC: u32 = 512;
pub const IME_CMODE_SYMBOL: u32 = 1024;
pub const IME_CMODE_FIXED: u32 = 2048;
pub const IME_CMODE_RESERVED: u32 = 4026531840;
pub const IME_SMODE_NONE: u32 = 0;
pub const IME_SMODE_PLAURALCLAUSE: u32 = 1;
pub const IME_SMODE_SINGLECONVERT: u32 = 2;
pub const IME_SMODE_AUTOMATIC: u32 = 4;
pub const IME_SMODE_PHRASEPREDICT: u32 = 8;
pub const IME_SMODE_CONVERSATION: u32 = 16;
pub const IME_SMODE_RESERVED: u32 = 61440;
pub const IME_CAND_UNKNOWN: u32 = 0;
pub const IME_CAND_READ: u32 = 1;
pub const IME_CAND_CODE: u32 = 2;
pub const IME_CAND_MEANING: u32 = 3;
pub const IME_CAND_RADICAL: u32 = 4;
pub const IME_CAND_STROKE: u32 = 5;
pub const IMN_CLOSESTATUSWINDOW: u32 = 1;
pub const IMN_OPENSTATUSWINDOW: u32 = 2;
pub const IMN_CHANGECANDIDATE: u32 = 3;
pub const IMN_CLOSECANDIDATE: u32 = 4;
pub const IMN_OPENCANDIDATE: u32 = 5;
pub const IMN_SETCONVERSIONMODE: u32 = 6;
pub const IMN_SETSENTENCEMODE: u32 = 7;
pub const IMN_SETOPENSTATUS: u32 = 8;
pub const IMN_SETCANDIDATEPOS: u32 = 9;
pub const IMN_SETCOMPOSITIONFONT: u32 = 10;
pub const IMN_SETCOMPOSITIONWINDOW: u32 = 11;
pub const IMN_SETSTATUSWINDOWPOS: u32 = 12;
pub const IMN_GUIDELINE: u32 = 13;
pub const IMN_PRIVATE: u32 = 14;
pub const IMR_COMPOSITIONWINDOW: u32 = 1;
pub const IMR_CANDIDATEWINDOW: u32 = 2;
pub const IMR_COMPOSITIONFONT: u32 = 3;
pub const IMR_RECONVERTSTRING: u32 = 4;
pub const IMR_CONFIRMRECONVERTSTRING: u32 = 5;
pub const IMR_QUERYCHARPOSITION: u32 = 6;
pub const IMR_DOCUMENTFEED: u32 = 7;
pub const IMM_ERROR_NODATA: i32 = -1;
pub const IMM_ERROR_GENERAL: i32 = -2;
pub const IME_CONFIG_GENERAL: u32 = 1;
pub const IME_CONFIG_REGISTERWORD: u32 = 2;
pub const IME_CONFIG_SELECTDICTIONARY: u32 = 3;
pub const IME_ESC_QUERY_SUPPORT: u32 = 3;
pub const IME_ESC_RESERVED_FIRST: u32 = 4;
pub const IME_ESC_RESERVED_LAST: u32 = 2047;
pub const IME_ESC_PRIVATE_FIRST: u32 = 2048;
pub const IME_ESC_PRIVATE_LAST: u32 = 4095;
pub const IME_ESC_SEQUENCE_TO_INTERNAL: u32 = 4097;
pub const IME_ESC_GET_EUDC_DICTIONARY: u32 = 4099;
pub const IME_ESC_SET_EUDC_DICTIONARY: u32 = 4100;
pub const IME_ESC_MAX_KEY: u32 = 4101;
pub const IME_ESC_IME_NAME: u32 = 4102;
pub const IME_ESC_SYNC_HOTKEY: u32 = 4103;
pub const IME_ESC_HANJA_MODE: u32 = 4104;
pub const IME_ESC_AUTOMATA: u32 = 4105;
pub const IME_ESC_PRIVATE_HOTKEY: u32 = 4106;
pub const IME_ESC_GETHELPFILENAME: u32 = 4107;
pub const IME_REGWORD_STYLE_EUDC: u32 = 1;
pub const IME_REGWORD_STYLE_USER_FIRST: u32 = 2147483648;
pub const IME_REGWORD_STYLE_USER_LAST: u32 = 4294967295;
pub const IACE_CHILDREN: u32 = 1;
pub const IACE_DEFAULT: u32 = 16;
pub const IACE_IGNORENOCONTEXT: u32 = 32;
pub const IGIMIF_RIGHTMENU: u32 = 1;
pub const IGIMII_CMODE: u32 = 1;
pub const IGIMII_SMODE: u32 = 2;
pub const IGIMII_CONFIGURE: u32 = 4;
pub const IGIMII_TOOLS: u32 = 8;
pub const IGIMII_HELP: u32 = 16;
pub const IGIMII_OTHER: u32 = 32;
pub const IGIMII_INPUTTOOLS: u32 = 64;
pub const IMFT_RADIOCHECK: u32 = 1;
pub const IMFT_SEPARATOR: u32 = 2;
pub const IMFT_SUBMENU: u32 = 4;
pub const SOFTKEYBOARD_TYPE_T1: u32 = 1;
pub const SOFTKEYBOARD_TYPE_C1: u32 = 2;
pub const WM_CTLCOLOR: u32 = 25;
pub const ABM_NEW: u32 = 0;
pub const ABM_REMOVE: u32 = 1;
pub const ABM_QUERYPOS: u32 = 2;
pub const ABM_SETPOS: u32 = 3;
pub const ABM_GETSTATE: u32 = 4;
pub const ABM_GETTASKBARPOS: u32 = 5;
pub const ABM_ACTIVATE: u32 = 6;
pub const ABM_GETAUTOHIDEBAR: u32 = 7;
pub const ABM_SETAUTOHIDEBAR: u32 = 8;
pub const ABM_WINDOWPOSCHANGED: u32 = 9;
pub const ABM_SETSTATE: u32 = 10;
pub const ABN_STATECHANGE: u32 = 0;
pub const ABN_POSCHANGED: u32 = 1;
pub const ABN_FULLSCREENAPP: u32 = 2;
pub const ABN_WINDOWARRANGE: u32 = 3;
pub const ABS_AUTOHIDE: u32 = 1;
pub const ABS_ALWAYSONTOP: u32 = 2;
pub const ABE_LEFT: u32 = 0;
pub const ABE_TOP: u32 = 1;
pub const ABE_RIGHT: u32 = 2;
pub const ABE_BOTTOM: u32 = 3;
pub const FO_MOVE: u32 = 1;
pub const FO_COPY: u32 = 2;
pub const FO_DELETE: u32 = 3;
pub const FO_RENAME: u32 = 4;
pub const FOF_MULTIDESTFILES: u32 = 1;
pub const FOF_CONFIRMMOUSE: u32 = 2;
pub const FOF_SILENT: u32 = 4;
pub const FOF_RENAMEONCOLLISION: u32 = 8;
pub const FOF_NOCONFIRMATION: u32 = 16;
pub const FOF_WANTMAPPINGHANDLE: u32 = 32;
pub const FOF_ALLOWUNDO: u32 = 64;
pub const FOF_FILESONLY: u32 = 128;
pub const FOF_SIMPLEPROGRESS: u32 = 256;
pub const FOF_NOCONFIRMMKDIR: u32 = 512;
pub const FOF_NOERRORUI: u32 = 1024;
pub const FOF_NOCOPYSECURITYATTRIBS: u32 = 2048;
pub const FOF_NORECURSION: u32 = 4096;
pub const FOF_NO_CONNECTED_ELEMENTS: u32 = 8192;
pub const FOF_WANTNUKEWARNING: u32 = 16384;
pub const FOF_NORECURSEREPARSE: u32 = 32768;
pub const FOF_NO_UI: u32 = 1556;
pub const PO_DELETE: u32 = 19;
pub const PO_RENAME: u32 = 20;
pub const PO_PORTCHANGE: u32 = 32;
pub const PO_REN_PORT: u32 = 52;
pub const SE_ERR_FNF: u32 = 2;
pub const SE_ERR_PNF: u32 = 3;
pub const SE_ERR_ACCESSDENIED: u32 = 5;
pub const SE_ERR_OOM: u32 = 8;
pub const SE_ERR_DLLNOTFOUND: u32 = 32;
pub const SE_ERR_SHARE: u32 = 26;
pub const SE_ERR_ASSOCINCOMPLETE: u32 = 27;
pub const SE_ERR_DDETIMEOUT: u32 = 28;
pub const SE_ERR_DDEFAIL: u32 = 29;
pub const SE_ERR_DDEBUSY: u32 = 30;
pub const SE_ERR_NOASSOC: u32 = 31;
pub const SEE_MASK_DEFAULT: u32 = 0;
pub const SEE_MASK_CLASSNAME: u32 = 1;
pub const SEE_MASK_CLASSKEY: u32 = 3;
pub const SEE_MASK_IDLIST: u32 = 4;
pub const SEE_MASK_INVOKEIDLIST: u32 = 12;
pub const SEE_MASK_ICON: u32 = 16;
pub const SEE_MASK_HOTKEY: u32 = 32;
pub const SEE_MASK_NOCLOSEPROCESS: u32 = 64;
pub const SEE_MASK_CONNECTNETDRV: u32 = 128;
pub const SEE_MASK_NOASYNC: u32 = 256;
pub const SEE_MASK_FLAG_DDEWAIT: u32 = 256;
pub const SEE_MASK_DOENVSUBST: u32 = 512;
pub const SEE_MASK_FLAG_NO_UI: u32 = 1024;
pub const SEE_MASK_UNICODE: u32 = 16384;
pub const SEE_MASK_NO_CONSOLE: u32 = 32768;
pub const SEE_MASK_ASYNCOK: u32 = 1048576;
pub const SEE_MASK_HMONITOR: u32 = 2097152;
pub const SEE_MASK_NOZONECHECKS: u32 = 8388608;
pub const SEE_MASK_NOQUERYCLASSSTORE: u32 = 16777216;
pub const SEE_MASK_WAITFORINPUTIDLE: u32 = 33554432;
pub const SEE_MASK_FLAG_LOG_USAGE: u32 = 67108864;
pub const SHERB_NOCONFIRMATION: u32 = 1;
pub const SHERB_NOPROGRESSUI: u32 = 2;
pub const SHERB_NOSOUND: u32 = 4;
pub const NIN_SELECT: u32 = 1024;
pub const NINF_KEY: u32 = 1;
pub const NIN_KEYSELECT: u32 = 1025;
pub const NIN_BALLOONSHOW: u32 = 1026;
pub const NIN_BALLOONHIDE: u32 = 1027;
pub const NIN_BALLOONTIMEOUT: u32 = 1028;
pub const NIN_BALLOONUSERCLICK: u32 = 1029;
pub const NIM_ADD: u32 = 0;
pub const NIM_MODIFY: u32 = 1;
pub const NIM_DELETE: u32 = 2;
pub const NIM_SETFOCUS: u32 = 3;
pub const NIM_SETVERSION: u32 = 4;
pub const NOTIFYICON_VERSION: u32 = 3;
pub const NIF_MESSAGE: u32 = 1;
pub const NIF_ICON: u32 = 2;
pub const NIF_TIP: u32 = 4;
pub const NIF_STATE: u32 = 8;
pub const NIF_INFO: u32 = 16;
pub const NIF_GUID: u32 = 32;
pub const NIS_HIDDEN: u32 = 1;
pub const NIS_SHAREDICON: u32 = 2;
pub const NIIF_NONE: u32 = 0;
pub const NIIF_INFO: u32 = 1;
pub const NIIF_WARNING: u32 = 2;
pub const NIIF_ERROR: u32 = 3;
pub const NIIF_USER: u32 = 4;
pub const NIIF_ICON_MASK: u32 = 15;
pub const NIIF_NOSOUND: u32 = 16;
pub const SHGFI_ICON: u32 = 256;
pub const SHGFI_DISPLAYNAME: u32 = 512;
pub const SHGFI_TYPENAME: u32 = 1024;
pub const SHGFI_ATTRIBUTES: u32 = 2048;
pub const SHGFI_ICONLOCATION: u32 = 4096;
pub const SHGFI_EXETYPE: u32 = 8192;
pub const SHGFI_SYSICONINDEX: u32 = 16384;
pub const SHGFI_LINKOVERLAY: u32 = 32768;
pub const SHGFI_SELECTED: u32 = 65536;
pub const SHGFI_ATTR_SPECIFIED: u32 = 131072;
pub const SHGFI_LARGEICON: u32 = 0;
pub const SHGFI_SMALLICON: u32 = 1;
pub const SHGFI_OPENICON: u32 = 2;
pub const SHGFI_SHELLICONSIZE: u32 = 4;
pub const SHGFI_PIDL: u32 = 8;
pub const SHGFI_USEFILEATTRIBUTES: u32 = 16;
pub const SHGFI_ADDOVERLAYS: u32 = 32;
pub const SHGFI_OVERLAYINDEX: u32 = 64;
pub const SHGNLI_PIDL: u32 = 1;
pub const SHGNLI_PREFIXNAME: u32 = 2;
pub const SHGNLI_NOUNIQUE: u32 = 4;
pub const SHGNLI_NOLNK: u32 = 8;
pub const SHGNLI_NOLOCNAME: u32 = 16;
pub const PRINTACTION_OPEN: u32 = 0;
pub const PRINTACTION_PROPERTIES: u32 = 1;
pub const PRINTACTION_NETINSTALL: u32 = 2;
pub const PRINTACTION_NETINSTALLLINK: u32 = 3;
pub const PRINTACTION_TESTPAGE: u32 = 4;
pub const PRINTACTION_OPENNETPRN: u32 = 5;
pub const PRINTACTION_DOCUMENTDEFAULTS: u32 = 6;
pub const PRINTACTION_SERVERPROPERTIES: u32 = 7;
pub const OFFLINE_STATUS_LOCAL: u32 = 1;
pub const OFFLINE_STATUS_REMOTE: u32 = 2;
pub const OFFLINE_STATUS_INCOMPLETE: u32 = 4;
pub const SHIL_LARGE: u32 = 0;
pub const SHIL_SMALL: u32 = 1;
pub const SHIL_EXTRALARGE: u32 = 2;
pub const SHIL_SYSSMALL: u32 = 3;
pub const SHIL_LAST: u32 = 3;
pub const WM_MOUSEHWHEEL: u32 = 526;
pub const WGL_NUMBER_PIXEL_FORMATS_ARB: u32 = 8192;
pub const WGL_SUPPORT_OPENGL_ARB: u32 = 8208;
pub const WGL_DRAW_TO_WINDOW_ARB: u32 = 8193;
pub const WGL_PIXEL_TYPE_ARB: u32 = 8211;
pub const WGL_TYPE_RGBA_ARB: u32 = 8235;
pub const WGL_ACCELERATION_ARB: u32 = 8195;
pub const WGL_NO_ACCELERATION_ARB: u32 = 8229;
pub const WGL_RED_BITS_ARB: u32 = 8213;
pub const WGL_RED_SHIFT_ARB: u32 = 8214;
pub const WGL_GREEN_BITS_ARB: u32 = 8215;
pub const WGL_GREEN_SHIFT_ARB: u32 = 8216;
pub const WGL_BLUE_BITS_ARB: u32 = 8217;
pub const WGL_BLUE_SHIFT_ARB: u32 = 8218;
pub const WGL_ALPHA_BITS_ARB: u32 = 8219;
pub const WGL_ALPHA_SHIFT_ARB: u32 = 8220;
pub const WGL_ACCUM_BITS_ARB: u32 = 8221;
pub const WGL_ACCUM_RED_BITS_ARB: u32 = 8222;
pub const WGL_ACCUM_GREEN_BITS_ARB: u32 = 8223;
pub const WGL_ACCUM_BLUE_BITS_ARB: u32 = 8224;
pub const WGL_ACCUM_ALPHA_BITS_ARB: u32 = 8225;
pub const WGL_DEPTH_BITS_ARB: u32 = 8226;
pub const WGL_STENCIL_BITS_ARB: u32 = 8227;
pub const WGL_AUX_BUFFERS_ARB: u32 = 8228;
pub const WGL_STEREO_ARB: u32 = 8210;
pub const WGL_DOUBLE_BUFFER_ARB: u32 = 8209;
pub const WGL_SAMPLES_ARB: u32 = 8258;
pub const WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB: u32 = 8361;
pub const WGL_CONTEXT_DEBUG_BIT_ARB: u32 = 1;
pub const WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB: u32 = 2;
pub const WGL_CONTEXT_PROFILE_MASK_ARB: u32 = 37158;
pub const WGL_CONTEXT_CORE_PROFILE_BIT_ARB: u32 = 1;
pub const WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB: u32 = 2;
pub const WGL_CONTEXT_MAJOR_VERSION_ARB: u32 = 8337;
pub const WGL_CONTEXT_MINOR_VERSION_ARB: u32 = 8338;
pub const WGL_CONTEXT_FLAGS_ARB: u32 = 8340;
pub const WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB: u32 = 4;
pub const WGL_LOSE_CONTEXT_ON_RESET_ARB: u32 = 33362;
pub const WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB: u32 = 33366;
pub const WGL_NO_RESET_NOTIFICATION_ARB: u32 = 33377;
pub const WGL_CONTEXT_RELEASE_BEHAVIOR_ARB: u32 = 8343;
pub const WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB: u32 = 0;
pub const WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB: u32 = 8344;
pub const WGL_COLORSPACE_EXT: u32 = 12445;
pub const WGL_COLORSPACE_SRGB_EXT: u32 = 12425;
pub const ERROR_INVALID_VERSION_ARB: u32 = 8341;
pub const ERROR_INVALID_PROFILE_ARB: u32 = 8342;
pub const ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB: u32 = 8276;
pub const __gl_h_: u32 = 1;
pub const __gl32_h_: u32 = 1;
pub const __gl31_h_: u32 = 1;
pub const __GL_H__: u32 = 1;
pub const __glext_h_: u32 = 1;
pub const __GLEXT_H_: u32 = 1;
pub const __gltypes_h_: u32 = 1;
pub const __glcorearb_h_: u32 = 1;
pub const __gl_glcorearb_h_: u32 = 1;
pub const GL_INT_2_10_10_10_REV: u32 = 36255;
pub const GL_R32F: u32 = 33326;
pub const GL_PROGRAM_POINT_SIZE: u32 = 34370;
pub const GL_STENCIL_ATTACHMENT: u32 = 36128;
pub const GL_DEPTH_ATTACHMENT: u32 = 36096;
pub const GL_COLOR_ATTACHMENT2: u32 = 36066;
pub const GL_COLOR_ATTACHMENT0: u32 = 36064;
pub const GL_R16F: u32 = 33325;
pub const GL_COLOR_ATTACHMENT22: u32 = 36086;
pub const GL_DRAW_FRAMEBUFFER: u32 = 36009;
pub const GL_FRAMEBUFFER_COMPLETE: u32 = 36053;
pub const GL_NUM_EXTENSIONS: u32 = 33309;
pub const GL_INFO_LOG_LENGTH: u32 = 35716;
pub const GL_VERTEX_SHADER: u32 = 35633;
pub const GL_INCR: u32 = 7682;
pub const GL_DYNAMIC_DRAW: u32 = 35048;
pub const GL_STATIC_DRAW: u32 = 35044;
pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Z: u32 = 34073;
pub const GL_TEXTURE_CUBE_MAP: u32 = 34067;
pub const GL_FUNC_SUBTRACT: u32 = 32778;
pub const GL_FUNC_REVERSE_SUBTRACT: u32 = 32779;
pub const GL_CONSTANT_COLOR: u32 = 32769;
pub const GL_DECR_WRAP: u32 = 34056;
pub const GL_R8: u32 = 33321;
pub const GL_LINEAR_MIPMAP_LINEAR: u32 = 9987;
pub const GL_ELEMENT_ARRAY_BUFFER: u32 = 34963;
pub const GL_SHORT: u32 = 5122;
pub const GL_DEPTH_TEST: u32 = 2929;
pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: u32 = 34072;
pub const GL_LINK_STATUS: u32 = 35714;
pub const GL_TEXTURE_CUBE_MAP_POSITIVE_Y: u32 = 34071;
pub const GL_SAMPLE_ALPHA_TO_COVERAGE: u32 = 32926;
pub const GL_RGBA16F: u32 = 34842;
pub const GL_CONSTANT_ALPHA: u32 = 32771;
pub const GL_READ_FRAMEBUFFER: u32 = 36008;
pub const GL_TEXTURE0: u32 = 33984;
pub const GL_TEXTURE_MIN_LOD: u32 = 33082;
pub const GL_CLAMP_TO_EDGE: u32 = 33071;
pub const GL_UNSIGNED_SHORT_5_6_5: u32 = 33635;
pub const GL_TEXTURE_WRAP_R: u32 = 32882;
pub const GL_UNSIGNED_SHORT_5_5_5_1: u32 = 32820;
pub const GL_NEAREST_MIPMAP_NEAREST: u32 = 9984;
pub const GL_UNSIGNED_SHORT_4_4_4_4: u32 = 32819;
pub const GL_SRC_ALPHA_SATURATE: u32 = 776;
pub const GL_STREAM_DRAW: u32 = 35040;
pub const GL_ONE: u32 = 1;
pub const GL_NEAREST_MIPMAP_LINEAR: u32 = 9986;
pub const GL_RGB10_A2: u32 = 32857;
pub const GL_RGBA8: u32 = 32856;
pub const GL_COLOR_ATTACHMENT1: u32 = 36065;
pub const GL_RGBA4: u32 = 32854;
pub const GL_RGB8: u32 = 32849;
pub const GL_ARRAY_BUFFER: u32 = 34962;
pub const GL_STENCIL: u32 = 6146;
pub const GL_TEXTURE_2D: u32 = 3553;
pub const GL_DEPTH: u32 = 6145;
pub const GL_FRONT: u32 = 1028;
pub const GL_STENCIL_BUFFER_BIT: u32 = 1024;
pub const GL_REPEAT: u32 = 10497;
pub const GL_RGBA: u32 = 6408;
pub const GL_TEXTURE_CUBE_MAP_POSITIVE_X: u32 = 34069;
pub const GL_DECR: u32 = 7683;
pub const GL_FRAGMENT_SHADER: u32 = 35632;
pub const GL_FLOAT: u32 = 5126;
pub const GL_TEXTURE_MAX_LOD: u32 = 33083;
pub const GL_DEPTH_COMPONENT: u32 = 6402;
pub const GL_ONE_MINUS_DST_ALPHA: u32 = 773;
pub const GL_COLOR: u32 = 6144;
pub const GL_TEXTURE_2D_ARRAY: u32 = 35866;
pub const GL_TRIANGLES: u32 = 4;
pub const GL_UNSIGNED_BYTE: u32 = 5121;
pub const GL_TEXTURE_MAG_FILTER: u32 = 10240;
pub const GL_ONE_MINUS_CONSTANT_ALPHA: u32 = 32772;
pub const GL_NONE: u32 = 0;
pub const GL_SRC_COLOR: u32 = 768;
pub const GL_BYTE: u32 = 5120;
pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: u32 = 34074;
pub const GL_LINE_STRIP: u32 = 3;
pub const GL_TEXTURE_3D: u32 = 32879;
pub const GL_CW: u32 = 2304;
pub const GL_LINEAR: u32 = 9729;
pub const GL_RENDERBUFFER: u32 = 36161;
pub const GL_GEQUAL: u32 = 518;
pub const GL_COLOR_BUFFER_BIT: u32 = 16384;
pub const GL_RGBA32F: u32 = 34836;
pub const GL_BLEND: u32 = 3042;
pub const GL_ONE_MINUS_SRC_ALPHA: u32 = 771;
pub const GL_ONE_MINUS_CONSTANT_COLOR: u32 = 32770;
pub const GL_TEXTURE_WRAP_T: u32 = 10243;
pub const GL_TEXTURE_WRAP_S: u32 = 10242;
pub const GL_TEXTURE_MIN_FILTER: u32 = 10241;
pub const GL_LINEAR_MIPMAP_NEAREST: u32 = 9985;
pub const GL_EXTENSIONS: u32 = 7939;
pub const GL_NO_ERROR: u32 = 0;
pub const GL_REPLACE: u32 = 7681;
pub const GL_KEEP: u32 = 7680;
pub const GL_CCW: u32 = 2305;
pub const GL_TEXTURE_CUBE_MAP_NEGATIVE_X: u32 = 34070;
pub const GL_RGB: u32 = 6407;
pub const GL_TRIANGLE_STRIP: u32 = 5;
pub const GL_FALSE: u32 = 0;
pub const GL_ZERO: u32 = 0;
pub const GL_CULL_FACE: u32 = 2884;
pub const GL_INVERT: u32 = 5386;
pub const GL_INT: u32 = 5124;
pub const GL_UNSIGNED_INT: u32 = 5125;
pub const GL_UNSIGNED_SHORT: u32 = 5123;
pub const GL_NEAREST: u32 = 9728;
pub const GL_SCISSOR_TEST: u32 = 3089;
pub const GL_LEQUAL: u32 = 515;
pub const GL_STENCIL_TEST: u32 = 2960;
pub const GL_DITHER: u32 = 3024;
pub const GL_DEPTH_COMPONENT16: u32 = 33189;
pub const GL_EQUAL: u32 = 514;
pub const GL_FRAMEBUFFER: u32 = 36160;
pub const GL_RGB5: u32 = 32848;
pub const GL_LINES: u32 = 1;
pub const GL_DEPTH_BUFFER_BIT: u32 = 256;
pub const GL_SRC_ALPHA: u32 = 770;
pub const GL_INCR_WRAP: u32 = 34055;
pub const GL_LESS: u32 = 513;
pub const GL_MULTISAMPLE: u32 = 32925;
pub const GL_FRAMEBUFFER_BINDING: u32 = 36006;
pub const GL_BACK: u32 = 1029;
pub const GL_ALWAYS: u32 = 519;
pub const GL_FUNC_ADD: u32 = 32774;
pub const GL_ONE_MINUS_DST_COLOR: u32 = 775;
pub const GL_NOTEQUAL: u32 = 517;
pub const GL_DST_COLOR: u32 = 774;
pub const GL_COMPILE_STATUS: u32 = 35713;
pub const GL_RED: u32 = 6403;
pub const GL_COLOR_ATTACHMENT3: u32 = 36067;
pub const GL_DST_ALPHA: u32 = 772;
pub const GL_RGB5_A1: u32 = 32855;
pub const GL_GREATER: u32 = 516;
pub const GL_POLYGON_OFFSET_FILL: u32 = 32823;
pub const GL_TRUE: u32 = 1;
pub const GL_NEVER: u32 = 512;
pub const GL_POINTS: u32 = 0;
pub const GL_ONE_MINUS_SRC_COLOR: u32 = 769;
pub const GL_MIRRORED_REPEAT: u32 = 33648;
pub const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: u32 = 35661;
pub const GL_R11F_G11F_B10F: u32 = 35898;
pub const GL_UNSIGNED_INT_10F_11F_11F_REV: u32 = 35899;
pub const GL_RGBA32UI: u32 = 36208;
pub const GL_RGB32UI: u32 = 36209;
pub const GL_RGBA16UI: u32 = 36214;
pub const GL_RGB16UI: u32 = 36215;
pub const GL_RGBA8UI: u32 = 36220;
pub const GL_RGB8UI: u32 = 36221;
pub const GL_RGBA32I: u32 = 36226;
pub const GL_RGB32I: u32 = 36227;
pub const GL_RGBA16I: u32 = 36232;
pub const GL_RGB16I: u32 = 36233;
pub const GL_RGBA8I: u32 = 36238;
pub const GL_RGB8I: u32 = 36239;
pub const GL_RED_INTEGER: u32 = 36244;
pub const GL_RG: u32 = 33319;
pub const GL_RG_INTEGER: u32 = 33320;
pub const GL_R16: u32 = 33322;
pub const GL_RG8: u32 = 33323;
pub const GL_RG16: u32 = 33324;
pub const GL_RG16F: u32 = 33327;
pub const GL_RG32F: u32 = 33328;
pub const GL_R8I: u32 = 33329;
pub const GL_R8UI: u32 = 33330;
pub const GL_R16I: u32 = 33331;
pub const GL_R16UI: u32 = 33332;
pub const GL_R32I: u32 = 33333;
pub const GL_R32UI: u32 = 33334;
pub const GL_RG8I: u32 = 33335;
pub const GL_RG8UI: u32 = 33336;
pub const GL_RG16I: u32 = 33337;
pub const GL_RG16UI: u32 = 33338;
pub const GL_RG32I: u32 = 33339;
pub const GL_RG32UI: u32 = 33340;
pub const GL_RGBA_INTEGER: u32 = 36249;
pub const GL_R8_SNORM: u32 = 36756;
pub const GL_RG8_SNORM: u32 = 36757;
pub const GL_RGB8_SNORM: u32 = 36758;
pub const GL_RGBA8_SNORM: u32 = 36759;
pub const GL_R16_SNORM: u32 = 36760;
pub const GL_RG16_SNORM: u32 = 36761;
pub const GL_RGB16_SNORM: u32 = 36762;
pub const GL_RGBA16_SNORM: u32 = 36763;
pub const GL_RGBA16: u32 = 32859;
pub const GL_MAX_TEXTURE_SIZE: u32 = 3379;
pub const GL_MAX_CUBE_MAP_TEXTURE_SIZE: u32 = 34076;
pub const GL_MAX_3D_TEXTURE_SIZE: u32 = 32883;
pub const GL_MAX_ARRAY_TEXTURE_LAYERS: u32 = 35071;
pub const GL_MAX_VERTEX_ATTRIBS: u32 = 34921;
pub const GL_CLAMP_TO_BORDER: u32 = 33069;
pub const GL_TEXTURE_BORDER_COLOR: u32 = 4100;
pub type __gnuc_va_list = __builtin_va_list;
pub type va_list = __gnuc_va_list;
extern "C" {
    pub fn __debugbreak();
}
extern "C" {
    pub fn __mingw_get_crt_info() -> *const ::std::os::raw::c_char;
}
pub type rsize_t = usize;
pub type wchar_t = ::std::os::raw::c_ushort;
pub type wint_t = ::std::os::raw::c_ushort;
pub type wctype_t = ::std::os::raw::c_ushort;
pub type errno_t = ::std::os::raw::c_int;
pub type __time32_t = ::std::os::raw::c_long;
pub type __time64_t = ::std::os::raw::c_longlong;
pub type time_t = __time64_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct threadmbcinfostruct {
    _unused: [u8; 0],
}
pub type pthreadlocinfo = *mut threadlocaleinfostruct;
pub type pthreadmbcinfo = *mut threadmbcinfostruct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __lc_time_data {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct localeinfo_struct {
    pub locinfo: pthreadlocinfo,
    pub mbcinfo: pthreadmbcinfo,
}
pub type _locale_tstruct = localeinfo_struct;
pub type _locale_t = *mut localeinfo_struct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLC_ID {
    pub wLanguage: ::std::os::raw::c_ushort,
    pub wCountry: ::std::os::raw::c_ushort,
    pub wCodePage: ::std::os::raw::c_ushort,
}
pub type LC_ID = tagLC_ID;
pub type LPLC_ID = *mut tagLC_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct threadlocaleinfostruct {
    pub refcount: ::std::os::raw::c_int,
    pub lc_codepage: ::std::os::raw::c_uint,
    pub lc_collate_cp: ::std::os::raw::c_uint,
    pub lc_handle: [::std::os::raw::c_ulong; 6usize],
    pub lc_id: [LC_ID; 6usize],
    pub lc_category: [threadlocaleinfostruct__bindgen_ty_1; 6usize],
    pub lc_clike: ::std::os::raw::c_int,
    pub mb_cur_max: ::std::os::raw::c_int,
    pub lconv_intl_refcount: *mut ::std::os::raw::c_int,
    pub lconv_num_refcount: *mut ::std::os::raw::c_int,
    pub lconv_mon_refcount: *mut ::std::os::raw::c_int,
    pub lconv: *mut lconv,
    pub ctype1_refcount: *mut ::std::os::raw::c_int,
    pub ctype1: *mut ::std::os::raw::c_ushort,
    pub pctype: *const ::std::os::raw::c_ushort,
    pub pclmap: *const ::std::os::raw::c_uchar,
    pub pcumap: *const ::std::os::raw::c_uchar,
    pub lc_time_curr: *mut __lc_time_data,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct threadlocaleinfostruct__bindgen_ty_1 {
    pub locale: *mut ::std::os::raw::c_char,
    pub wlocale: *mut wchar_t,
    pub refcount: *mut ::std::os::raw::c_int,
    pub wrefcount: *mut ::std::os::raw::c_int,
}
pub type threadlocinfo = threadlocaleinfostruct;
pub type int_least8_t = ::std::os::raw::c_schar;
pub type uint_least8_t = ::std::os::raw::c_uchar;
pub type int_least16_t = ::std::os::raw::c_short;
pub type uint_least16_t = ::std::os::raw::c_ushort;
pub type int_least32_t = ::std::os::raw::c_int;
pub type uint_least32_t = ::std::os::raw::c_uint;
pub type int_least64_t = ::std::os::raw::c_longlong;
pub type uint_least64_t = ::std::os::raw::c_ulonglong;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type int_fast16_t = ::std::os::raw::c_short;
pub type uint_fast16_t = ::std::os::raw::c_ushort;
pub type int_fast32_t = ::std::os::raw::c_int;
pub type uint_fast32_t = ::std::os::raw::c_uint;
pub type int_fast64_t = ::std::os::raw::c_longlong;
pub type uint_fast64_t = ::std::os::raw::c_ulonglong;
pub type intmax_t = ::std::os::raw::c_longlong;
pub type uintmax_t = ::std::os::raw::c_ulonglong;
pub const SAPP_MAX_TOUCHPOINTS: _bindgen_ty_1 = 8;
pub const SAPP_MAX_MOUSEBUTTONS: _bindgen_ty_1 = 3;
pub const SAPP_MAX_KEYCODES: _bindgen_ty_1 = 512;
pub type _bindgen_ty_1 = u32;
pub const sapp_event_type_SAPP_EVENTTYPE_INVALID: sapp_event_type = 0;
pub const sapp_event_type_SAPP_EVENTTYPE_KEY_DOWN: sapp_event_type = 1;
pub const sapp_event_type_SAPP_EVENTTYPE_KEY_UP: sapp_event_type = 2;
pub const sapp_event_type_SAPP_EVENTTYPE_CHAR: sapp_event_type = 3;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_DOWN: sapp_event_type = 4;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_UP: sapp_event_type = 5;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_SCROLL: sapp_event_type = 6;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_MOVE: sapp_event_type = 7;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_ENTER: sapp_event_type = 8;
pub const sapp_event_type_SAPP_EVENTTYPE_MOUSE_LEAVE: sapp_event_type = 9;
pub const sapp_event_type_SAPP_EVENTTYPE_TOUCHES_BEGAN: sapp_event_type = 10;
pub const sapp_event_type_SAPP_EVENTTYPE_TOUCHES_MOVED: sapp_event_type = 11;
pub const sapp_event_type_SAPP_EVENTTYPE_TOUCHES_ENDED: sapp_event_type = 12;
pub const sapp_event_type_SAPP_EVENTTYPE_TOUCHES_CANCELLED: sapp_event_type = 13;
pub const sapp_event_type_SAPP_EVENTTYPE_RESIZED: sapp_event_type = 14;
pub const sapp_event_type_SAPP_EVENTTYPE_ICONIFIED: sapp_event_type = 15;
pub const sapp_event_type_SAPP_EVENTTYPE_RESTORED: sapp_event_type = 16;
pub const sapp_event_type_SAPP_EVENTTYPE_SUSPENDED: sapp_event_type = 17;
pub const sapp_event_type_SAPP_EVENTTYPE_RESUMED: sapp_event_type = 18;
pub const sapp_event_type_SAPP_EVENTTYPE_UPDATE_CURSOR: sapp_event_type = 19;
pub const sapp_event_type_SAPP_EVENTTYPE_QUIT_REQUESTED: sapp_event_type = 20;
pub const sapp_event_type__SAPP_EVENTTYPE_NUM: sapp_event_type = 21;
pub const sapp_event_type__SAPP_EVENTTYPE_FORCE_U32: sapp_event_type = 2147483647;
pub type sapp_event_type = u32;
pub const sapp_keycode_SAPP_KEYCODE_INVALID: sapp_keycode = 0;
pub const sapp_keycode_SAPP_KEYCODE_SPACE: sapp_keycode = 32;
pub const sapp_keycode_SAPP_KEYCODE_APOSTROPHE: sapp_keycode = 39;
pub const sapp_keycode_SAPP_KEYCODE_COMMA: sapp_keycode = 44;
pub const sapp_keycode_SAPP_KEYCODE_MINUS: sapp_keycode = 45;
pub const sapp_keycode_SAPP_KEYCODE_PERIOD: sapp_keycode = 46;
pub const sapp_keycode_SAPP_KEYCODE_SLASH: sapp_keycode = 47;
pub const sapp_keycode_SAPP_KEYCODE_0: sapp_keycode = 48;
pub const sapp_keycode_SAPP_KEYCODE_1: sapp_keycode = 49;
pub const sapp_keycode_SAPP_KEYCODE_2: sapp_keycode = 50;
pub const sapp_keycode_SAPP_KEYCODE_3: sapp_keycode = 51;
pub const sapp_keycode_SAPP_KEYCODE_4: sapp_keycode = 52;
pub const sapp_keycode_SAPP_KEYCODE_5: sapp_keycode = 53;
pub const sapp_keycode_SAPP_KEYCODE_6: sapp_keycode = 54;
pub const sapp_keycode_SAPP_KEYCODE_7: sapp_keycode = 55;
pub const sapp_keycode_SAPP_KEYCODE_8: sapp_keycode = 56;
pub const sapp_keycode_SAPP_KEYCODE_9: sapp_keycode = 57;
pub const sapp_keycode_SAPP_KEYCODE_SEMICOLON: sapp_keycode = 59;
pub const sapp_keycode_SAPP_KEYCODE_EQUAL: sapp_keycode = 61;
pub const sapp_keycode_SAPP_KEYCODE_A: sapp_keycode = 65;
pub const sapp_keycode_SAPP_KEYCODE_B: sapp_keycode = 66;
pub const sapp_keycode_SAPP_KEYCODE_C: sapp_keycode = 67;
pub const sapp_keycode_SAPP_KEYCODE_D: sapp_keycode = 68;
pub const sapp_keycode_SAPP_KEYCODE_E: sapp_keycode = 69;
pub const sapp_keycode_SAPP_KEYCODE_F: sapp_keycode = 70;
pub const sapp_keycode_SAPP_KEYCODE_G: sapp_keycode = 71;
pub const sapp_keycode_SAPP_KEYCODE_H: sapp_keycode = 72;
pub const sapp_keycode_SAPP_KEYCODE_I: sapp_keycode = 73;
pub const sapp_keycode_SAPP_KEYCODE_J: sapp_keycode = 74;
pub const sapp_keycode_SAPP_KEYCODE_K: sapp_keycode = 75;
pub const sapp_keycode_SAPP_KEYCODE_L: sapp_keycode = 76;
pub const sapp_keycode_SAPP_KEYCODE_M: sapp_keycode = 77;
pub const sapp_keycode_SAPP_KEYCODE_N: sapp_keycode = 78;
pub const sapp_keycode_SAPP_KEYCODE_O: sapp_keycode = 79;
pub const sapp_keycode_SAPP_KEYCODE_P: sapp_keycode = 80;
pub const sapp_keycode_SAPP_KEYCODE_Q: sapp_keycode = 81;
pub const sapp_keycode_SAPP_KEYCODE_R: sapp_keycode = 82;
pub const sapp_keycode_SAPP_KEYCODE_S: sapp_keycode = 83;
pub const sapp_keycode_SAPP_KEYCODE_T: sapp_keycode = 84;
pub const sapp_keycode_SAPP_KEYCODE_U: sapp_keycode = 85;
pub const sapp_keycode_SAPP_KEYCODE_V: sapp_keycode = 86;
pub const sapp_keycode_SAPP_KEYCODE_W: sapp_keycode = 87;
pub const sapp_keycode_SAPP_KEYCODE_X: sapp_keycode = 88;
pub const sapp_keycode_SAPP_KEYCODE_Y: sapp_keycode = 89;
pub const sapp_keycode_SAPP_KEYCODE_Z: sapp_keycode = 90;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_BRACKET: sapp_keycode = 91;
pub const sapp_keycode_SAPP_KEYCODE_BACKSLASH: sapp_keycode = 92;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_BRACKET: sapp_keycode = 93;
pub const sapp_keycode_SAPP_KEYCODE_GRAVE_ACCENT: sapp_keycode = 96;
pub const sapp_keycode_SAPP_KEYCODE_WORLD_1: sapp_keycode = 161;
pub const sapp_keycode_SAPP_KEYCODE_WORLD_2: sapp_keycode = 162;
pub const sapp_keycode_SAPP_KEYCODE_ESCAPE: sapp_keycode = 256;
pub const sapp_keycode_SAPP_KEYCODE_ENTER: sapp_keycode = 257;
pub const sapp_keycode_SAPP_KEYCODE_TAB: sapp_keycode = 258;
pub const sapp_keycode_SAPP_KEYCODE_BACKSPACE: sapp_keycode = 259;
pub const sapp_keycode_SAPP_KEYCODE_INSERT: sapp_keycode = 260;
pub const sapp_keycode_SAPP_KEYCODE_DELETE: sapp_keycode = 261;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT: sapp_keycode = 262;
pub const sapp_keycode_SAPP_KEYCODE_LEFT: sapp_keycode = 263;
pub const sapp_keycode_SAPP_KEYCODE_DOWN: sapp_keycode = 264;
pub const sapp_keycode_SAPP_KEYCODE_UP: sapp_keycode = 265;
pub const sapp_keycode_SAPP_KEYCODE_PAGE_UP: sapp_keycode = 266;
pub const sapp_keycode_SAPP_KEYCODE_PAGE_DOWN: sapp_keycode = 267;
pub const sapp_keycode_SAPP_KEYCODE_HOME: sapp_keycode = 268;
pub const sapp_keycode_SAPP_KEYCODE_END: sapp_keycode = 269;
pub const sapp_keycode_SAPP_KEYCODE_CAPS_LOCK: sapp_keycode = 280;
pub const sapp_keycode_SAPP_KEYCODE_SCROLL_LOCK: sapp_keycode = 281;
pub const sapp_keycode_SAPP_KEYCODE_NUM_LOCK: sapp_keycode = 282;
pub const sapp_keycode_SAPP_KEYCODE_PRINT_SCREEN: sapp_keycode = 283;
pub const sapp_keycode_SAPP_KEYCODE_PAUSE: sapp_keycode = 284;
pub const sapp_keycode_SAPP_KEYCODE_F1: sapp_keycode = 290;
pub const sapp_keycode_SAPP_KEYCODE_F2: sapp_keycode = 291;
pub const sapp_keycode_SAPP_KEYCODE_F3: sapp_keycode = 292;
pub const sapp_keycode_SAPP_KEYCODE_F4: sapp_keycode = 293;
pub const sapp_keycode_SAPP_KEYCODE_F5: sapp_keycode = 294;
pub const sapp_keycode_SAPP_KEYCODE_F6: sapp_keycode = 295;
pub const sapp_keycode_SAPP_KEYCODE_F7: sapp_keycode = 296;
pub const sapp_keycode_SAPP_KEYCODE_F8: sapp_keycode = 297;
pub const sapp_keycode_SAPP_KEYCODE_F9: sapp_keycode = 298;
pub const sapp_keycode_SAPP_KEYCODE_F10: sapp_keycode = 299;
pub const sapp_keycode_SAPP_KEYCODE_F11: sapp_keycode = 300;
pub const sapp_keycode_SAPP_KEYCODE_F12: sapp_keycode = 301;
pub const sapp_keycode_SAPP_KEYCODE_F13: sapp_keycode = 302;
pub const sapp_keycode_SAPP_KEYCODE_F14: sapp_keycode = 303;
pub const sapp_keycode_SAPP_KEYCODE_F15: sapp_keycode = 304;
pub const sapp_keycode_SAPP_KEYCODE_F16: sapp_keycode = 305;
pub const sapp_keycode_SAPP_KEYCODE_F17: sapp_keycode = 306;
pub const sapp_keycode_SAPP_KEYCODE_F18: sapp_keycode = 307;
pub const sapp_keycode_SAPP_KEYCODE_F19: sapp_keycode = 308;
pub const sapp_keycode_SAPP_KEYCODE_F20: sapp_keycode = 309;
pub const sapp_keycode_SAPP_KEYCODE_F21: sapp_keycode = 310;
pub const sapp_keycode_SAPP_KEYCODE_F22: sapp_keycode = 311;
pub const sapp_keycode_SAPP_KEYCODE_F23: sapp_keycode = 312;
pub const sapp_keycode_SAPP_KEYCODE_F24: sapp_keycode = 313;
pub const sapp_keycode_SAPP_KEYCODE_F25: sapp_keycode = 314;
pub const sapp_keycode_SAPP_KEYCODE_KP_0: sapp_keycode = 320;
pub const sapp_keycode_SAPP_KEYCODE_KP_1: sapp_keycode = 321;
pub const sapp_keycode_SAPP_KEYCODE_KP_2: sapp_keycode = 322;
pub const sapp_keycode_SAPP_KEYCODE_KP_3: sapp_keycode = 323;
pub const sapp_keycode_SAPP_KEYCODE_KP_4: sapp_keycode = 324;
pub const sapp_keycode_SAPP_KEYCODE_KP_5: sapp_keycode = 325;
pub const sapp_keycode_SAPP_KEYCODE_KP_6: sapp_keycode = 326;
pub const sapp_keycode_SAPP_KEYCODE_KP_7: sapp_keycode = 327;
pub const sapp_keycode_SAPP_KEYCODE_KP_8: sapp_keycode = 328;
pub const sapp_keycode_SAPP_KEYCODE_KP_9: sapp_keycode = 329;
pub const sapp_keycode_SAPP_KEYCODE_KP_DECIMAL: sapp_keycode = 330;
pub const sapp_keycode_SAPP_KEYCODE_KP_DIVIDE: sapp_keycode = 331;
pub const sapp_keycode_SAPP_KEYCODE_KP_MULTIPLY: sapp_keycode = 332;
pub const sapp_keycode_SAPP_KEYCODE_KP_SUBTRACT: sapp_keycode = 333;
pub const sapp_keycode_SAPP_KEYCODE_KP_ADD: sapp_keycode = 334;
pub const sapp_keycode_SAPP_KEYCODE_KP_ENTER: sapp_keycode = 335;
pub const sapp_keycode_SAPP_KEYCODE_KP_EQUAL: sapp_keycode = 336;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_SHIFT: sapp_keycode = 340;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_CONTROL: sapp_keycode = 341;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_ALT: sapp_keycode = 342;
pub const sapp_keycode_SAPP_KEYCODE_LEFT_SUPER: sapp_keycode = 343;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_SHIFT: sapp_keycode = 344;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_CONTROL: sapp_keycode = 345;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_ALT: sapp_keycode = 346;
pub const sapp_keycode_SAPP_KEYCODE_RIGHT_SUPER: sapp_keycode = 347;
pub const sapp_keycode_SAPP_KEYCODE_MENU: sapp_keycode = 348;
pub type sapp_keycode = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sapp_touchpoint {
    pub identifier: usize,
    pub pos_x: f32,
    pub pos_y: f32,
    pub changed: bool,
}
pub const sapp_mousebutton_SAPP_MOUSEBUTTON_INVALID: sapp_mousebutton = -1;
pub const sapp_mousebutton_SAPP_MOUSEBUTTON_LEFT: sapp_mousebutton = 0;
pub const sapp_mousebutton_SAPP_MOUSEBUTTON_RIGHT: sapp_mousebutton = 1;
pub const sapp_mousebutton_SAPP_MOUSEBUTTON_MIDDLE: sapp_mousebutton = 2;
pub type sapp_mousebutton = i32;
pub const SAPP_MODIFIER_SHIFT: _bindgen_ty_2 = 1;
pub const SAPP_MODIFIER_CTRL: _bindgen_ty_2 = 2;
pub const SAPP_MODIFIER_ALT: _bindgen_ty_2 = 4;
pub const SAPP_MODIFIER_SUPER: _bindgen_ty_2 = 8;
pub type _bindgen_ty_2 = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sapp_event {
    pub frame_count: u64,
    pub type_: sapp_event_type,
    pub key_code: sapp_keycode,
    pub char_code: u32,
    pub key_repeat: bool,
    pub modifiers: u32,
    pub mouse_button: sapp_mousebutton,
    pub mouse_x: f32,
    pub mouse_y: f32,
    pub scroll_x: f32,
    pub scroll_y: f32,
    pub num_touches: ::std::os::raw::c_int,
    pub touches: [sapp_touchpoint; 8usize],
    pub window_width: ::std::os::raw::c_int,
    pub window_height: ::std::os::raw::c_int,
    pub framebuffer_width: ::std::os::raw::c_int,
    pub framebuffer_height: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sapp_desc {
    pub init_cb: ::std::option::Option<unsafe extern "C" fn()>,
    pub frame_cb: ::std::option::Option<unsafe extern "C" fn()>,
    pub cleanup_cb: ::std::option::Option<unsafe extern "C" fn()>,
    pub event_cb: ::std::option::Option<unsafe extern "C" fn(arg1: *const sapp_event)>,
    pub fail_cb: ::std::option::Option<unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char)>,
    pub user_data: *mut ::std::os::raw::c_void,
    pub init_userdata_cb:
        ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub frame_userdata_cb:
        ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub cleanup_userdata_cb:
        ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub event_userdata_cb: ::std::option::Option<
        unsafe extern "C" fn(arg1: *const sapp_event, arg2: *mut ::std::os::raw::c_void),
    >,
    pub fail_userdata_cb: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *const ::std::os::raw::c_char,
            arg2: *mut ::std::os::raw::c_void,
        ),
    >,
    pub width: ::std::os::raw::c_int,
    pub height: ::std::os::raw::c_int,
    pub sample_count: ::std::os::raw::c_int,
    pub swap_interval: ::std::os::raw::c_int,
    pub high_dpi: bool,
    pub fullscreen: bool,
    pub alpha: bool,
    pub window_title: *const ::std::os::raw::c_char,
    pub user_cursor: bool,
    pub html5_canvas_name: *const ::std::os::raw::c_char,
    pub html5_canvas_resize: bool,
    pub html5_preserve_drawing_buffer: bool,
    pub html5_premultiplied_alpha: bool,
    pub html5_ask_leave_site: bool,
    pub ios_keyboard_resizes_canvas: bool,
    pub gl_force_gles2: bool,
}
extern "C" {
    pub fn sokol_main(
        argc: ::std::os::raw::c_int,
        argv: *mut *mut ::std::os::raw::c_char,
    ) -> sapp_desc;
}
extern "C" {
    pub fn sapp_isvalid() -> bool;
}
extern "C" {
    pub fn sapp_width() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sapp_height() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sapp_high_dpi() -> bool;
}
extern "C" {
    pub fn sapp_dpi_scale() -> f32;
}
extern "C" {
    pub fn sapp_show_keyboard(visible: bool);
}
extern "C" {
    pub fn sapp_keyboard_shown() -> bool;
}
extern "C" {
    pub fn sapp_show_mouse(visible: bool);
}
extern "C" {
    pub fn sapp_mouse_shown() -> bool;
}
extern "C" {
    pub fn sapp_userdata() -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_query_desc() -> sapp_desc;
}
extern "C" {
    pub fn sapp_request_quit();
}
extern "C" {
    pub fn sapp_cancel_quit();
}
extern "C" {
    pub fn sapp_quit();
}
extern "C" {
    pub fn sapp_frame_count() -> u64;
}
extern "C" {
    pub fn sapp_run(desc: *const sapp_desc) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sapp_gles2() -> bool;
}
extern "C" {
    pub fn sapp_html5_ask_leave_site(ask: bool);
}
extern "C" {
    pub fn sapp_metal_get_device() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_metal_get_renderpass_descriptor() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_metal_get_drawable() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_macos_get_window() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_ios_get_window() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_d3d11_get_device() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_d3d11_get_device_context() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_d3d11_get_render_target_view() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_d3d11_get_depth_stencil_view() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_win32_get_hwnd() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sapp_android_get_native_activity() -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn _memccpy(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _MaxCount: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memchr(
        _Buf: *const ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _memicmp(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _memicmp_l(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn memcmp(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn memcpy(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memcpy_s(
        _dest: *mut ::std::os::raw::c_void,
        _numberOfElements: usize,
        _src: *const ::std::os::raw::c_void,
        _count: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn mempcpy(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Size: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memset(
        _Dst: *mut ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memccpy(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _Size: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memicmp(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strset(
        _Str: *mut ::std::os::raw::c_char,
        _Val: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strset_l(
        _Str: *mut ::std::os::raw::c_char,
        _Val: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcpy(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcat(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcmp(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strlen(_Str: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn strnlen(_Str: *const ::std::os::raw::c_char, _MaxCount: usize) -> usize;
}
extern "C" {
    pub fn memmove(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _strdup(_Src: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strchr(
        _Str: *const ::std::os::raw::c_char,
        _Val: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _stricmp(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strcmpi(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stricmp_l(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcoll(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strcoll_l(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stricoll(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stricoll_l(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strncoll(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strncoll_l(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicoll(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicoll_l(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcspn(
        _Str: *const ::std::os::raw::c_char,
        _Control: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strerror(_ErrMsg: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strerror(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strlwr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strlwr_l(
        _String: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strncat(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
        _Count: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strncmp(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicmp(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicmp_l(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strncpy(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
        _Count: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strnset(
        _Str: *mut ::std::os::raw::c_char,
        _Val: ::std::os::raw::c_int,
        _MaxCount: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strnset_l(
        str: *mut ::std::os::raw::c_char,
        c: ::std::os::raw::c_int,
        count: usize,
        _Locale: _locale_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strpbrk(
        _Str: *const ::std::os::raw::c_char,
        _Control: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strrchr(
        _Str: *const ::std::os::raw::c_char,
        _Ch: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strrev(_Str: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strspn(
        _Str: *const ::std::os::raw::c_char,
        _Control: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn strstr(
        _Str: *const ::std::os::raw::c_char,
        _SubStr: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strtok(
        _Str: *mut ::std::os::raw::c_char,
        _Delim: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strtok_r(
        _Str: *mut ::std::os::raw::c_char,
        _Delim: *const ::std::os::raw::c_char,
        __last: *mut *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strupr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strupr_l(
        _String: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strxfrm(
        _Dst: *mut ::std::os::raw::c_char,
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strxfrm_l(
        _Dst: *mut ::std::os::raw::c_char,
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> usize;
}
extern "C" {
    pub fn strdup(_Src: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcmpi(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn stricmp(
        _Str1: *const ::std::os::raw::c_char,
        _Str2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strlwr(_Str: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strnicmp(
        _Str1: *const ::std::os::raw::c_char,
        _Str: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strncasecmp(
        arg1: *const ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcasecmp(
        arg1: *const ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strnset(
        _Str: *mut ::std::os::raw::c_char,
        _Val: ::std::os::raw::c_int,
        _MaxCount: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strrev(_Str: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strset(
        _Str: *mut ::std::os::raw::c_char,
        _Val: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strupr(_Str: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _wcsdup(_Str: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscat(_Dest: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcschr(
        _Str: *const ::std::os::raw::c_ushort,
        _Ch: ::std::os::raw::c_ushort,
    ) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn wcscmp(
        _Str1: *const ::std::os::raw::c_ushort,
        _Str2: *const ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcscpy(_Dest: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscspn(_Str: *const wchar_t, _Control: *const wchar_t) -> usize;
}
extern "C" {
    pub fn wcslen(_Str: *const ::std::os::raw::c_ushort) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn wcsnlen(_Src: *const wchar_t, _MaxCount: usize) -> usize;
}
extern "C" {
    pub fn wcsncat(_Dest: *mut wchar_t, _Source: *const wchar_t, _Count: usize) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsncmp(
        _Str1: *const ::std::os::raw::c_ushort,
        _Str2: *const ::std::os::raw::c_ushort,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsncpy(_Dest: *mut wchar_t, _Source: *const wchar_t, _Count: usize) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsncpy_l(
        _Dest: *mut wchar_t,
        _Source: *const wchar_t,
        _Count: usize,
        _Locale: _locale_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn wcspbrk(_Str: *const wchar_t, _Control: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsrchr(_Str: *const wchar_t, _Ch: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsspn(_Str: *const wchar_t, _Control: *const wchar_t) -> usize;
}
extern "C" {
    pub fn wcsstr(_Str: *const wchar_t, _SubStr: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcstok(_Str: *mut wchar_t, _Delim: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcserror(_ErrNum: ::std::os::raw::c_int) -> *mut wchar_t;
}
extern "C" {
    pub fn __wcserror(_Str: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsicmp(_Str1: *const wchar_t, _Str2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicmp_l(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicmp(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicmp_l(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnset(_Str: *mut wchar_t, _Val: wchar_t, _MaxCount: usize) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsrev(_Str: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsset(_Str: *mut wchar_t, _Val: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcslwr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsupr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsxfrm(_Dst: *mut wchar_t, _Src: *const wchar_t, _MaxCount: usize) -> usize;
}
extern "C" {
    pub fn _wcsxfrm_l(
        _Dst: *mut wchar_t,
        _Src: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> usize;
}
extern "C" {
    pub fn wcscoll(_Str1: *const wchar_t, _Str2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcscoll_l(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicoll(_Str1: *const wchar_t, _Str2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicoll_l(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsncoll(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsncoll_l(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicoll(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicoll_l(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsdup(_Str: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsicmp(_Str1: *const wchar_t, _Str2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsnicmp(
        _Str1: *const wchar_t,
        _Str2: *const wchar_t,
        _MaxCount: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsnset(_Str: *mut wchar_t, _Val: wchar_t, _MaxCount: usize) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsrev(_Str: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsset(_Str: *mut wchar_t, _Val: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcslwr(_Str: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsupr(_Str: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsicoll(_Str1: *const wchar_t, _Str2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strset_s(
        _Dst: *mut ::std::os::raw::c_char,
        _DstSize: usize,
        _Value: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _strerror_s(
        _Buf: *mut ::std::os::raw::c_char,
        _SizeInBytes: usize,
        _ErrMsg: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn strerror_s(
        _Buf: *mut ::std::os::raw::c_char,
        _SizeInBytes: usize,
        _ErrNum: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _strlwr_s(_Str: *mut ::std::os::raw::c_char, _Size: usize) -> errno_t;
}
extern "C" {
    pub fn _strlwr_s_l(
        _Str: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _strnset_s(
        _Str: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Val: ::std::os::raw::c_int,
        _MaxCount: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _strupr_s(_Str: *mut ::std::os::raw::c_char, _Size: usize) -> errno_t;
}
extern "C" {
    pub fn _strupr_s_l(
        _Str: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn strncat_s(
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInChars: usize,
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _strncat_s_l(
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInChars: usize,
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn strcpy_s(
        _Dst: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Src: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn strncpy_s(
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInChars: usize,
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _strncpy_s_l(
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInChars: usize,
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn strtok_s(
        _Str: *mut ::std::os::raw::c_char,
        _Delim: *const ::std::os::raw::c_char,
        _Context: *mut *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strtok_s_l(
        _Str: *mut ::std::os::raw::c_char,
        _Delim: *const ::std::os::raw::c_char,
        _Context: *mut *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcat_s(
        _Dst: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Src: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn memmove_s(
        _dest: *mut ::std::os::raw::c_void,
        _numberOfElements: usize,
        _src: *const ::std::os::raw::c_void,
        _count: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn wcstok_s(
        _Str: *mut wchar_t,
        _Delim: *const wchar_t,
        _Context: *mut *mut wchar_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcserror_s(
        _Buf: *mut wchar_t,
        _SizeInWords: usize,
        _ErrNum: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn __wcserror_s(
        _Buffer: *mut wchar_t,
        _SizeInWords: usize,
        _ErrMsg: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsnset_s(
        _Dst: *mut wchar_t,
        _DstSizeInWords: usize,
        _Val: wchar_t,
        _MaxCount: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsset_s(_Str: *mut wchar_t, _SizeInWords: usize, _Val: wchar_t) -> errno_t;
}
extern "C" {
    pub fn _wcslwr_s(_Str: *mut wchar_t, _SizeInWords: usize) -> errno_t;
}
extern "C" {
    pub fn _wcslwr_s_l(_Str: *mut wchar_t, _SizeInWords: usize, _Locale: _locale_t) -> errno_t;
}
extern "C" {
    pub fn _wcsupr_s(_Str: *mut wchar_t, _Size: usize) -> errno_t;
}
extern "C" {
    pub fn _wcsupr_s_l(_Str: *mut wchar_t, _Size: usize, _Locale: _locale_t) -> errno_t;
}
extern "C" {
    pub fn wcscpy_s(_Dst: *mut wchar_t, _SizeInWords: rsize_t, _Src: *const wchar_t) -> errno_t;
}
extern "C" {
    pub fn wcscat_s(_Dst: *mut wchar_t, _SizeInWords: rsize_t, _Src: *const wchar_t) -> errno_t;
}
extern "C" {
    pub fn wcsncat_s(
        _Dst: *mut wchar_t,
        _DstSizeInChars: usize,
        _Src: *const wchar_t,
        _MaxCount: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsncat_s_l(
        _Dst: *mut wchar_t,
        _DstSizeInChars: usize,
        _Src: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcsncpy_s(
        _Dst: *mut wchar_t,
        _DstSizeInChars: usize,
        _Src: *const wchar_t,
        _MaxCount: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsncpy_s_l(
        _Dst: *mut wchar_t,
        _DstSizeInChars: usize,
        _Src: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcstok_s_l(
        _Str: *mut wchar_t,
        _Delim: *const wchar_t,
        _Context: *mut *mut wchar_t,
        _Locale: _locale_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsset_s_l(
        _Str: *mut wchar_t,
        _SizeInChars: usize,
        _Val: ::std::os::raw::c_uint,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsnset_s_l(
        _Str: *mut wchar_t,
        _SizeInChars: usize,
        _Val: ::std::os::raw::c_uint,
        _Count: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn exit(_Code: ::std::os::raw::c_int);
}
extern "C" {
    pub fn _exit(_Code: ::std::os::raw::c_int);
}
extern "C" {
    pub fn _Exit(arg1: ::std::os::raw::c_int);
}
extern "C" {
    pub fn abort();
}
extern "C" {
    pub fn _wassert(_Message: *const wchar_t, _File: *const wchar_t, _Line: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn _assert(
        _Message: *const ::std::os::raw::c_char,
        _File: *const ::std::os::raw::c_char,
        _Line: ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub fn _itow_s(
        _Val: ::std::os::raw::c_int,
        _DstBuf: *mut wchar_t,
        _SizeInWords: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ltow_s(
        _Val: ::std::os::raw::c_long,
        _DstBuf: *mut wchar_t,
        _SizeInWords: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ultow_s(
        _Val: ::std::os::raw::c_ulong,
        _DstBuf: *mut wchar_t,
        _SizeInWords: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _wgetenv_s(
        _ReturnSize: *mut usize,
        _DstBuf: *mut wchar_t,
        _DstSizeInWords: usize,
        _VarName: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wdupenv_s(
        _Buffer: *mut *mut wchar_t,
        _BufferSizeInWords: *mut usize,
        _VarName: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _i64tow_s(
        _Val: ::std::os::raw::c_longlong,
        _DstBuf: *mut wchar_t,
        _SizeInWords: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ui64tow_s(
        _Val: ::std::os::raw::c_ulonglong,
        _DstBuf: *mut wchar_t,
        _SizeInWords: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _wmakepath_s(
        _PathResult: *mut wchar_t,
        _SizeInWords: usize,
        _Drive: *const wchar_t,
        _Dir: *const wchar_t,
        _Filename: *const wchar_t,
        _Ext: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wputenv_s(_Name: *const wchar_t, _Value: *const wchar_t) -> errno_t;
}
extern "C" {
    pub fn _wsearchenv_s(
        _Filename: *const wchar_t,
        _EnvVar: *const wchar_t,
        _ResultPath: *mut wchar_t,
        _SizeInWords: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _wsplitpath_s(
        _FullPath: *const wchar_t,
        _Drive: *mut wchar_t,
        _DriveSizeInWords: usize,
        _Dir: *mut wchar_t,
        _DirSizeInWords: usize,
        _Filename: *mut wchar_t,
        _FilenameSizeInWords: usize,
        _Ext: *mut wchar_t,
        _ExtSizeInWords: usize,
    ) -> errno_t;
}
pub type _onexit_t = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _div_t {
    pub quot: ::std::os::raw::c_int,
    pub rem: ::std::os::raw::c_int,
}
pub type div_t = _div_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ldiv_t {
    pub quot: ::std::os::raw::c_long,
    pub rem: ::std::os::raw::c_long,
}
pub type ldiv_t = _ldiv_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LDOUBLE {
    pub ld: [::std::os::raw::c_uchar; 10usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRT_DOUBLE {
    pub x: f64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRT_FLOAT {
    pub f: f32,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct _LONGDOUBLE {
    pub x: u128,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LDBL12 {
    pub ld12: [::std::os::raw::c_uchar; 12usize],
}
extern "C" {
    pub static mut __imp___mb_cur_max: *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn ___mb_cur_max_func() -> ::std::os::raw::c_int;
}
pub type _purecall_handler = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub fn _set_purecall_handler(_Handler: _purecall_handler) -> _purecall_handler;
}
extern "C" {
    pub fn _get_purecall_handler() -> _purecall_handler;
}
pub type _invalid_parameter_handler = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *const wchar_t,
        arg2: *const wchar_t,
        arg3: *const wchar_t,
        arg4: ::std::os::raw::c_uint,
        arg5: usize,
    ),
>;
extern "C" {
    pub fn _set_invalid_parameter_handler(
        _Handler: _invalid_parameter_handler,
    ) -> _invalid_parameter_handler;
}
extern "C" {
    pub fn _get_invalid_parameter_handler() -> _invalid_parameter_handler;
}
extern "C" {
    pub fn _errno() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_errno(_Value: ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub fn _get_errno(_Value: *mut ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub fn __doserrno() -> *mut ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _set_doserrno(_Value: ::std::os::raw::c_ulong) -> errno_t;
}
extern "C" {
    pub fn _get_doserrno(_Value: *mut ::std::os::raw::c_ulong) -> errno_t;
}
extern "C" {
    pub static mut _sys_errlist: [*mut ::std::os::raw::c_char; 1usize];
}
extern "C" {
    pub static mut _sys_nerr: ::std::os::raw::c_int;
}
extern "C" {
    pub fn __p___argv() -> *mut *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __p__fmode() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn _get_pgmptr(_Value: *mut *mut ::std::os::raw::c_char) -> errno_t;
}
extern "C" {
    pub fn _get_wpgmptr(_Value: *mut *mut wchar_t) -> errno_t;
}
extern "C" {
    pub fn _set_fmode(_Mode: ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub fn _get_fmode(_PMode: *mut ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub static mut __imp___argc: *mut ::std::os::raw::c_int;
}
extern "C" {
    pub static mut __imp___argv: *mut *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut __imp___wargv: *mut *mut *mut wchar_t;
}
extern "C" {
    pub static mut __imp__environ: *mut *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut __imp__wenviron: *mut *mut *mut wchar_t;
}
extern "C" {
    pub static mut __imp__pgmptr: *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut __imp__wpgmptr: *mut *mut wchar_t;
}
extern "C" {
    pub static mut __imp__osplatform: *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub static mut __imp__osver: *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub static mut __imp__winver: *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub static mut __imp__winmajor: *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub static mut __imp__winminor: *mut ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _get_osplatform(_Value: *mut ::std::os::raw::c_uint) -> errno_t;
}
extern "C" {
    pub fn _get_osver(_Value: *mut ::std::os::raw::c_uint) -> errno_t;
}
extern "C" {
    pub fn _get_winver(_Value: *mut ::std::os::raw::c_uint) -> errno_t;
}
extern "C" {
    pub fn _get_winmajor(_Value: *mut ::std::os::raw::c_uint) -> errno_t;
}
extern "C" {
    pub fn _get_winminor(_Value: *mut ::std::os::raw::c_uint) -> errno_t;
}
extern "C" {
    pub fn _set_abort_behavior(
        _Flags: ::std::os::raw::c_uint,
        _Mask: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn abs(_X: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn labs(_X: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _abs64(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn atexit(arg1: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn atof(_String: *const ::std::os::raw::c_char) -> f64;
}
extern "C" {
    pub fn _atof_l(_String: *const ::std::os::raw::c_char, _Locale: _locale_t) -> f64;
}
extern "C" {
    pub fn atoi(_Str: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoi_l(
        _Str: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn atol(_Str: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _atol_l(
        _Str: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn bsearch(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: usize,
        _SizeOfElements: usize,
        _PtFuncCompare: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *const ::std::os::raw::c_void,
                arg2: *const ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn qsort(
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: usize,
        _SizeOfElements: usize,
        _PtFuncCompare: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *const ::std::os::raw::c_void,
                arg2: *const ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
    );
}
extern "C" {
    pub fn _byteswap_ushort(_Short: ::std::os::raw::c_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn _byteswap_ulong(_Long: ::std::os::raw::c_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _byteswap_uint64(_Int64: ::std::os::raw::c_ulonglong) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn div(_Numerator: ::std::os::raw::c_int, _Denominator: ::std::os::raw::c_int) -> div_t;
}
extern "C" {
    pub fn getenv(_VarName: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _itoa(
        _Value: ::std::os::raw::c_int,
        _Dest: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _i64toa(
        _Val: ::std::os::raw::c_longlong,
        _DstBuf: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ui64toa(
        _Val: ::std::os::raw::c_ulonglong,
        _DstBuf: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _atoi64(_String: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _atoi64_l(
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _strtoi64(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _strtoi64_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _strtoui64(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strtoui64_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn ldiv(_Numerator: ::std::os::raw::c_long, _Denominator: ::std::os::raw::c_long)
        -> ldiv_t;
}
extern "C" {
    pub fn _ltoa(
        _Value: ::std::os::raw::c_long,
        _Dest: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mblen(_Ch: *const ::std::os::raw::c_char, _MaxCount: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _mblen_l(
        _Ch: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _mbstrlen(_Str: *const ::std::os::raw::c_char) -> usize;
}
extern "C" {
    pub fn _mbstrlen_l(_Str: *const ::std::os::raw::c_char, _Locale: _locale_t) -> usize;
}
extern "C" {
    pub fn _mbstrnlen(_Str: *const ::std::os::raw::c_char, _MaxCount: usize) -> usize;
}
extern "C" {
    pub fn _mbstrnlen_l(
        _Str: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> usize;
}
extern "C" {
    pub fn mbtowc(
        _DstCh: *mut wchar_t,
        _SrcCh: *const ::std::os::raw::c_char,
        _SrcSizeInBytes: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _mbtowc_l(
        _DstCh: *mut wchar_t,
        _SrcCh: *const ::std::os::raw::c_char,
        _SrcSizeInBytes: usize,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mbstowcs(
        _Dest: *mut wchar_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> usize;
}
extern "C" {
    pub fn _mbstowcs_l(
        _Dest: *mut wchar_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> usize;
}
extern "C" {
    pub fn mkstemp(template_name: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rand() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_error_mode(_Mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn srand(_Seed: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn strtod(
        _Str: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn strtof(
        nptr: *const ::std::os::raw::c_char,
        endptr: *mut *mut ::std::os::raw::c_char,
    ) -> f32;
}
extern "C" {
    pub fn strtold(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
    ) -> u128;
}
extern "C" {
    pub fn __strtod(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn __mingw_strtof(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
    ) -> f32;
}
extern "C" {
    pub fn __mingw_strtod(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn __mingw_strtold(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
    ) -> u128;
}
extern "C" {
    pub fn _strtod_l(
        _Str: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> f64;
}
extern "C" {
    pub fn strtol(
        _Str: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _strtol_l(
        _Str: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn strtoul(
        _Str: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _strtoul_l(
        _Str: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn system(_Command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ultoa(
        _Value: ::std::os::raw::c_ulong,
        _Dest: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn wctomb(_MbCh: *mut ::std::os::raw::c_char, _WCh: wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wctomb_l(
        _MbCh: *mut ::std::os::raw::c_char,
        _WCh: wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcstombs(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const wchar_t,
        _MaxCount: usize,
    ) -> usize;
}
extern "C" {
    pub fn _wcstombs_l(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const wchar_t,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> usize;
}
extern "C" {
    pub fn calloc(
        _NumOfElements: ::std::os::raw::c_ulonglong,
        _SizeOfElements: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn free(_Memory: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn malloc(_Size: ::std::os::raw::c_ulonglong) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn realloc(
        _Memory: *mut ::std::os::raw::c_void,
        _NewSize: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _recalloc(
        _Memory: *mut ::std::os::raw::c_void,
        _Count: usize,
        _Size: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_free(_Memory: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn _aligned_malloc(_Size: usize, _Alignment: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_offset_malloc(
        _Size: usize,
        _Alignment: usize,
        _Offset: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_realloc(
        _Memory: *mut ::std::os::raw::c_void,
        _Size: usize,
        _Alignment: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_recalloc(
        _Memory: *mut ::std::os::raw::c_void,
        _Count: usize,
        _Size: usize,
        _Alignment: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_offset_realloc(
        _Memory: *mut ::std::os::raw::c_void,
        _Size: usize,
        _Alignment: usize,
        _Offset: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_offset_recalloc(
        _Memory: *mut ::std::os::raw::c_void,
        _Count: usize,
        _Size: usize,
        _Alignment: usize,
        _Offset: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _itow(
        _Value: ::std::os::raw::c_int,
        _Dest: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _ltow(
        _Value: ::std::os::raw::c_long,
        _Dest: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _ultow(
        _Value: ::std::os::raw::c_ulong,
        _Dest: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn __mingw_wcstod(_Str: *const wchar_t, _EndPtr: *mut *mut wchar_t) -> f64;
}
extern "C" {
    pub fn __mingw_wcstof(nptr: *const wchar_t, endptr: *mut *mut wchar_t) -> f32;
}
extern "C" {
    pub fn __mingw_wcstold(arg1: *const wchar_t, arg2: *mut *mut wchar_t) -> u128;
}
extern "C" {
    pub fn wcstod(_Str: *const wchar_t, _EndPtr: *mut *mut wchar_t) -> f64;
}
extern "C" {
    pub fn wcstof(nptr: *const wchar_t, endptr: *mut *mut wchar_t) -> f32;
}
extern "C" {
    pub fn wcstold(arg1: *const wchar_t, arg2: *mut *mut wchar_t) -> u128;
}
extern "C" {
    pub fn _wcstod_l(_Str: *const wchar_t, _EndPtr: *mut *mut wchar_t, _Locale: _locale_t) -> f64;
}
extern "C" {
    pub fn wcstol(
        _Str: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _wcstol_l(
        _Str: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn wcstoul(
        _Str: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _wcstoul_l(
        _Str: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _wgetenv(_VarName: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wsystem(_Command: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtof(_Str: *const wchar_t) -> f64;
}
extern "C" {
    pub fn _wtof_l(_Str: *const wchar_t, _Locale: _locale_t) -> f64;
}
extern "C" {
    pub fn _wtoi(_Str: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtoi_l(_Str: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtol(_Str: *const wchar_t) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _wtol_l(_Str: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _i64tow(
        _Val: ::std::os::raw::c_longlong,
        _DstBuf: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _ui64tow(
        _Val: ::std::os::raw::c_ulonglong,
        _DstBuf: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wtoi64(_Str: *const wchar_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wtoi64_l(_Str: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wcstoi64(
        _Str: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wcstoi64_l(
        _Str: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wcstoui64(
        _Str: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _wcstoui64_l(
        _Str: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _putenv(_EnvString: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wputenv(_EnvString: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fullpath(
        _FullPath: *mut ::std::os::raw::c_char,
        _Path: *const ::std::os::raw::c_char,
        _SizeInBytes: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ecvt(
        _Val: f64,
        _NumOfDigits: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _fcvt(
        _Val: f64,
        _NumOfDec: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _gcvt(
        _Val: f64,
        _NumOfDigits: ::std::os::raw::c_int,
        _DstBuf: *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _atodbl(
        _Result: *mut _CRT_DOUBLE,
        _Str: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoldbl(
        _Result: *mut _LDOUBLE,
        _Str: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoflt(
        _Result: *mut _CRT_FLOAT,
        _Str: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atodbl_l(
        _Result: *mut _CRT_DOUBLE,
        _Str: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoldbl_l(
        _Result: *mut _LDOUBLE,
        _Str: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoflt_l(
        _Result: *mut _CRT_FLOAT,
        _Str: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _lrotl(
        arg1: ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _lrotr(
        arg1: ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _makepath(
        _Path: *mut ::std::os::raw::c_char,
        _Drive: *const ::std::os::raw::c_char,
        _Dir: *const ::std::os::raw::c_char,
        _Filename: *const ::std::os::raw::c_char,
        _Ext: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn _onexit(_Func: _onexit_t) -> _onexit_t;
}
extern "C" {
    pub fn perror(_ErrMsg: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn _rotl64(
        _Val: ::std::os::raw::c_ulonglong,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _rotr64(
        Value: ::std::os::raw::c_ulonglong,
        Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _rotr(
        _Val: ::std::os::raw::c_uint,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _rotl(
        _Val: ::std::os::raw::c_uint,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _searchenv(
        _Filename: *const ::std::os::raw::c_char,
        _EnvVar: *const ::std::os::raw::c_char,
        _ResultPath: *mut ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn _splitpath(
        _FullPath: *const ::std::os::raw::c_char,
        _Drive: *mut ::std::os::raw::c_char,
        _Dir: *mut ::std::os::raw::c_char,
        _Filename: *mut ::std::os::raw::c_char,
        _Ext: *mut ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn _swab(
        _Buf1: *mut ::std::os::raw::c_char,
        _Buf2: *mut ::std::os::raw::c_char,
        _SizeInBytes: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn _wfullpath(
        _FullPath: *mut wchar_t,
        _Path: *const wchar_t,
        _SizeInWords: usize,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wmakepath(
        _ResultPath: *mut wchar_t,
        _Drive: *const wchar_t,
        _Dir: *const wchar_t,
        _Filename: *const wchar_t,
        _Ext: *const wchar_t,
    );
}
extern "C" {
    pub fn _wperror(_ErrMsg: *const wchar_t);
}
extern "C" {
    pub fn _wsearchenv(
        _Filename: *const wchar_t,
        _EnvVar: *const wchar_t,
        _ResultPath: *mut wchar_t,
    );
}
extern "C" {
    pub fn _wsplitpath(
        _FullPath: *const wchar_t,
        _Drive: *mut wchar_t,
        _Dir: *mut wchar_t,
        _Filename: *mut wchar_t,
        _Ext: *mut wchar_t,
    );
}
extern "C" {
    pub fn _beep(_Frequency: ::std::os::raw::c_uint, _Duration: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn _seterrormode(_Mode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn _sleep(_Duration: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn ecvt(
        _Val: f64,
        _NumOfDigits: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fcvt(
        _Val: f64,
        _NumOfDec: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn gcvt(
        _Val: f64,
        _NumOfDigits: ::std::os::raw::c_int,
        _DstBuf: *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn itoa(
        _Val: ::std::os::raw::c_int,
        _DstBuf: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ltoa(
        _Val: ::std::os::raw::c_long,
        _DstBuf: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn putenv(_EnvString: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn swab(
        _Buf1: *mut ::std::os::raw::c_char,
        _Buf2: *mut ::std::os::raw::c_char,
        _SizeInBytes: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn ultoa(
        _Val: ::std::os::raw::c_ulong,
        _Dstbuf: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn onexit(_Func: _onexit_t) -> _onexit_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct lldiv_t {
    pub quot: ::std::os::raw::c_longlong,
    pub rem: ::std::os::raw::c_longlong,
}
extern "C" {
    pub fn lldiv(arg1: ::std::os::raw::c_longlong, arg2: ::std::os::raw::c_longlong) -> lldiv_t;
}
extern "C" {
    pub fn llabs(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn strtoll(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn strtoull(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn atoll(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn wtoll(arg1: *const wchar_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn lltoa(
        arg1: ::std::os::raw::c_longlong,
        arg2: *mut ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ulltoa(
        arg1: ::std::os::raw::c_ulonglong,
        arg2: *mut ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn lltow(
        arg1: ::std::os::raw::c_longlong,
        arg2: *mut wchar_t,
        arg3: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn ulltow(
        arg1: ::std::os::raw::c_ulonglong,
        arg2: *mut wchar_t,
        arg3: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _dupenv_s(
        _PBuffer: *mut *mut ::std::os::raw::c_char,
        _PBufferSizeInBytes: *mut usize,
        _VarName: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn _itoa_s(
        _Value: ::std::os::raw::c_int,
        _DstBuf: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _i64toa_s(
        _Val: ::std::os::raw::c_longlong,
        _DstBuf: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ui64toa_s(
        _Val: ::std::os::raw::c_ulonglong,
        _DstBuf: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ltoa_s(
        _Val: ::std::os::raw::c_long,
        _DstBuf: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn mbstowcs_s(
        _PtNumOfCharConverted: *mut usize,
        _DstBuf: *mut wchar_t,
        _SizeInWords: usize,
        _SrcBuf: *const ::std::os::raw::c_char,
        _MaxCount: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _mbstowcs_s_l(
        _PtNumOfCharConverted: *mut usize,
        _DstBuf: *mut wchar_t,
        _SizeInWords: usize,
        _SrcBuf: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _ultoa_s(
        _Val: ::std::os::raw::c_ulong,
        _DstBuf: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _wctomb_s_l(
        _SizeConverted: *mut ::std::os::raw::c_int,
        _MbCh: *mut ::std::os::raw::c_char,
        _SizeInBytes: usize,
        _WCh: wchar_t,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcstombs_s(
        _PtNumOfCharConverted: *mut usize,
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInBytes: usize,
        _Src: *const wchar_t,
        _MaxCountInBytes: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcstombs_s_l(
        _PtNumOfCharConverted: *mut usize,
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInBytes: usize,
        _Src: *const wchar_t,
        _MaxCountInBytes: usize,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _ecvt_s(
        _DstBuf: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Val: f64,
        _NumOfDights: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _fcvt_s(
        _DstBuf: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Val: f64,
        _NumOfDec: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _gcvt_s(
        _DstBuf: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Val: f64,
        _NumOfDigits: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _makepath_s(
        _PathResult: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Drive: *const ::std::os::raw::c_char,
        _Dir: *const ::std::os::raw::c_char,
        _Filename: *const ::std::os::raw::c_char,
        _Ext: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn _putenv_s(
        _Name: *const ::std::os::raw::c_char,
        _Value: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn _searchenv_s(
        _Filename: *const ::std::os::raw::c_char,
        _EnvVar: *const ::std::os::raw::c_char,
        _ResultPath: *mut ::std::os::raw::c_char,
        _SizeInBytes: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn _splitpath_s(
        _FullPath: *const ::std::os::raw::c_char,
        _Drive: *mut ::std::os::raw::c_char,
        _DriveSize: usize,
        _Dir: *mut ::std::os::raw::c_char,
        _DirSize: usize,
        _Filename: *mut ::std::os::raw::c_char,
        _FilenameSize: usize,
        _Ext: *mut ::std::os::raw::c_char,
        _ExtSize: usize,
    ) -> errno_t;
}
extern "C" {
    pub fn qsort_s(
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: usize,
        _SizeOfElements: usize,
        _PtFuncCompare: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *const ::std::os::raw::c_void,
                arg3: *const ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
        _Context: *mut ::std::os::raw::c_void,
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _heapinfo {
    pub _pentry: *mut ::std::os::raw::c_int,
    pub _size: usize,
    pub _useflag: ::std::os::raw::c_int,
}
pub type _HEAPINFO = _heapinfo;
extern "C" {
    pub static mut _amblksiz: ::std::os::raw::c_uint;
}
extern "C" {
    pub fn __mingw_aligned_malloc(_Size: usize, _Alignment: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn __mingw_aligned_free(_Memory: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn __mingw_aligned_offset_realloc(
        _Memory: *mut ::std::os::raw::c_void,
        _Size: usize,
        _Alignment: usize,
        _Offset: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn __mingw_aligned_realloc(
        _Memory: *mut ::std::os::raw::c_void,
        _Size: usize,
        _Offset: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _resetstkoflw() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_malloc_crt_max_wait(_NewValue: ::std::os::raw::c_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _expand(
        _Memory: *mut ::std::os::raw::c_void,
        _NewSize: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _msize(_Memory: *mut ::std::os::raw::c_void) -> usize;
}
extern "C" {
    pub fn _get_sbh_threshold() -> usize;
}
extern "C" {
    pub fn _set_sbh_threshold(_NewValue: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_amblksiz(_Value: usize) -> errno_t;
}
extern "C" {
    pub fn _get_amblksiz(_Value: *mut usize) -> errno_t;
}
extern "C" {
    pub fn _heapadd(_Memory: *mut ::std::os::raw::c_void, _Size: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _heapchk() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _heapmin() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _heapset(_Fill: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _heapwalk(_EntryInfo: *mut _HEAPINFO) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _heapused(_Used: *mut usize, _Commit: *mut usize) -> usize;
}
extern "C" {
    pub fn _get_heap_handle() -> isize;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _iobuf {
    pub _ptr: *mut ::std::os::raw::c_char,
    pub _cnt: ::std::os::raw::c_int,
    pub _base: *mut ::std::os::raw::c_char,
    pub _flag: ::std::os::raw::c_int,
    pub _file: ::std::os::raw::c_int,
    pub _charbuf: ::std::os::raw::c_int,
    pub _bufsiz: ::std::os::raw::c_int,
    pub _tmpfname: *mut ::std::os::raw::c_char,
}
pub type FILE = _iobuf;
pub type _off_t = ::std::os::raw::c_long;
pub type off32_t = ::std::os::raw::c_long;
pub type _off64_t = ::std::os::raw::c_longlong;
pub type off64_t = ::std::os::raw::c_longlong;
pub type off_t = off32_t;
extern "C" {
    pub fn __acrt_iob_func(index: ::std::os::raw::c_uint) -> *mut FILE;
}
extern "C" {
    pub fn __iob_func() -> *mut FILE;
}
pub type fpos_t = ::std::os::raw::c_longlong;
extern "C" {
    pub fn __mingw_sscanf(
        _Src: *const ::std::os::raw::c_char,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vsscanf(
        _Str: *const ::std::os::raw::c_char,
        Format: *const ::std::os::raw::c_char,
        argp: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_scanf(_Format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vscanf(
        Format: *const ::std::os::raw::c_char,
        argp: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_fscanf(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vfscanf(
        fp: *mut FILE,
        Format: *const ::std::os::raw::c_char,
        argp: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vsnprintf(
        _DstBuf: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_snprintf(
        s: *mut ::std::os::raw::c_char,
        n: usize,
        format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_printf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vprintf(
        arg1: *const ::std::os::raw::c_char,
        arg2: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_fprintf(
        arg1: *mut FILE,
        arg2: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vfprintf(
        arg1: *mut FILE,
        arg2: *const ::std::os::raw::c_char,
        arg3: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_sprintf(
        arg1: *mut ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vsprintf(
        arg1: *mut ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        arg3: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_asprintf(
        arg1: *mut *mut ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vasprintf(
        arg1: *mut *mut ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        arg3: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fprintf(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn printf(_Format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sprintf(
        _Dest: *mut ::std::os::raw::c_char,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vfprintf(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _ArgList: __builtin_va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vprintf(
        _Format: *const ::std::os::raw::c_char,
        _ArgList: __builtin_va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vsprintf(
        _Dest: *mut ::std::os::raw::c_char,
        _Format: *const ::std::os::raw::c_char,
        _Args: __builtin_va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fscanf(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn scanf(_Format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sscanf(
        _Src: *const ::std::os::raw::c_char,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_vscanf(
        Format: *const ::std::os::raw::c_char,
        argp: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_vfscanf(
        fp: *mut FILE,
        Format: *const ::std::os::raw::c_char,
        argp: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_vsscanf(
        _Str: *const ::std::os::raw::c_char,
        Format: *const ::std::os::raw::c_char,
        argp: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _filbuf(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _flsbuf(_Ch: ::std::os::raw::c_int, _File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fsopen(
        _Filename: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
        _ShFlag: ::std::os::raw::c_int,
    ) -> *mut FILE;
}
extern "C" {
    pub fn clearerr(_File: *mut FILE);
}
extern "C" {
    pub fn fclose(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fcloseall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fdopen(
        _FileHandle: ::std::os::raw::c_int,
        _Mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn feof(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ferror(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fflush(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetc(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fgetchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetpos(_File: *mut FILE, _Pos: *mut fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetpos64(_File: *mut FILE, _Pos: *mut fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgets(
        _Buf: *mut ::std::os::raw::c_char,
        _MaxCount: ::std::os::raw::c_int,
        _File: *mut FILE,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _fileno(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _tempnam(
        _DirName: *const ::std::os::raw::c_char,
        _FilePrefix: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _flushall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fopen(
        _Filename: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fopen64(
        filename: *const ::std::os::raw::c_char,
        mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fputc(_Ch: ::std::os::raw::c_int, _File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fputchar(_Ch: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fputs(_Str: *const ::std::os::raw::c_char, _File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fread(
        _DstBuf: *mut ::std::os::raw::c_void,
        _ElementSize: ::std::os::raw::c_ulonglong,
        _Count: ::std::os::raw::c_ulonglong,
        _File: *mut FILE,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn freopen(
        _Filename: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
        _File: *mut FILE,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fsetpos(_File: *mut FILE, _Pos: *const fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fsetpos64(_File: *mut FILE, _Pos: *const fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fseek(
        _File: *mut FILE,
        _Offset: ::std::os::raw::c_long,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ftell(_File: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _fseeki64(
        _File: *mut FILE,
        _Offset: ::std::os::raw::c_longlong,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ftelli64(_File: *mut FILE) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn fseeko64(
        stream: *mut FILE,
        offset: _off64_t,
        whence: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fseeko(
        stream: *mut FILE,
        offset: _off_t,
        whence: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ftello(stream: *mut FILE) -> _off_t;
}
extern "C" {
    pub fn ftello64(stream: *mut FILE) -> _off64_t;
}
extern "C" {
    pub fn fwrite(
        _Str: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
        _Count: ::std::os::raw::c_ulonglong,
        _File: *mut FILE,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn getc(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _getmaxstdio() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gets(_Buffer: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _getw(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _pclose(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _popen(
        _Command: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn putc(_Ch: ::std::os::raw::c_int, _File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putchar(_Ch: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn puts(_Str: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _putw(_Word: ::std::os::raw::c_int, _File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn remove(_Filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rename(
        _OldFilename: *const ::std::os::raw::c_char,
        _NewFilename: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _unlink(_Filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn unlink(_Filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rewind(_File: *mut FILE);
}
extern "C" {
    pub fn _rmtmp() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setbuf(_File: *mut FILE, _Buffer: *mut ::std::os::raw::c_char);
}
extern "C" {
    pub fn _setmaxstdio(_Max: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_output_format(_Format: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _get_output_format() -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn setvbuf(
        _File: *mut FILE,
        _Buf: *mut ::std::os::raw::c_char,
        _Mode: ::std::os::raw::c_int,
        _Size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scprintf(_Format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snscanf(
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tmpfile() -> *mut FILE;
}
extern "C" {
    pub fn tmpnam(_Buffer: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ungetc(_Ch: ::std::os::raw::c_int, _File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snprintf(
        _Dest: *mut ::std::os::raw::c_char,
        _Count: usize,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnprintf(
        _Dest: *mut ::std::os::raw::c_char,
        _Count: usize,
        _Format: *const ::std::os::raw::c_char,
        _Args: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_vsnprintf(
        d: *mut ::std::os::raw::c_char,
        n: usize,
        format: *const ::std::os::raw::c_char,
        arg: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_snprintf(
        s: *mut ::std::os::raw::c_char,
        n: usize,
        format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vscprintf(
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_printf_count_output(_Value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _get_printf_count_output() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_swscanf(
        _Src: *const wchar_t,
        _Format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vswscanf(
        _Str: *const wchar_t,
        Format: *const wchar_t,
        argp: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_wscanf(_Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vwscanf(Format: *const wchar_t, argp: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_fwscanf(_File: *mut FILE, _Format: *const wchar_t, ...)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vfwscanf(
        fp: *mut FILE,
        Format: *const wchar_t,
        argp: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_fwprintf(
        _File: *mut FILE,
        _Format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_wprintf(_Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vfwprintf(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vwprintf(_Format: *const wchar_t, _ArgList: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_snwprintf(
        s: *mut wchar_t,
        n: usize,
        format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vsnwprintf(
        arg1: *mut wchar_t,
        arg2: usize,
        arg3: *const wchar_t,
        arg4: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_swprintf(arg1: *mut wchar_t, arg2: *const wchar_t, ...)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_vswprintf(
        arg1: *mut wchar_t,
        arg2: *const wchar_t,
        arg3: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fwscanf(_File: *mut FILE, _Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn swscanf(_Src: *const wchar_t, _Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wscanf(_Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_vwscanf(arg1: *const wchar_t, arg2: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_vfwscanf(
        arg1: *mut FILE,
        arg2: *const wchar_t,
        arg3: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_vswscanf(
        arg1: *const wchar_t,
        arg2: *const wchar_t,
        arg3: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fwprintf(_File: *mut FILE, _Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wprintf(_Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vfwprintf(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vwprintf(_Format: *const wchar_t, _ArgList: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wfsopen(
        _Filename: *const wchar_t,
        _Mode: *const wchar_t,
        _ShFlag: ::std::os::raw::c_int,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fgetwc(_File: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _fgetwchar() -> wint_t;
}
extern "C" {
    pub fn fputwc(_Ch: wchar_t, _File: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _fputwchar(_Ch: wchar_t) -> wint_t;
}
extern "C" {
    pub fn getwc(_File: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn getwchar() -> wint_t;
}
extern "C" {
    pub fn putwc(_Ch: wchar_t, _File: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn putwchar(_Ch: wchar_t) -> wint_t;
}
extern "C" {
    pub fn ungetwc(_Ch: wint_t, _File: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn fgetws(
        _Dst: *mut wchar_t,
        _SizeInWords: ::std::os::raw::c_int,
        _File: *mut FILE,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn fputws(_Str: *const wchar_t, _File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _getws(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _putws(_Str: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scwprintf(_Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _swprintf_c(
        _DstBuf: *mut wchar_t,
        _SizeInWords: usize,
        _Format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vswprintf_c(
        _DstBuf: *mut wchar_t,
        _SizeInWords: usize,
        _Format: *const wchar_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snwprintf(
        _Dest: *mut wchar_t,
        _Count: usize,
        _Format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnwprintf(
        _Dest: *mut wchar_t,
        _Count: usize,
        _Format: *const wchar_t,
        _Args: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vscwprintf(_Format: *const wchar_t, _ArgList: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_snwprintf(
        s: *mut wchar_t,
        n: usize,
        format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __ms_vsnwprintf(
        arg1: *mut wchar_t,
        arg2: usize,
        arg3: *const wchar_t,
        arg4: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _swprintf(_Dest: *mut wchar_t, _Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vswprintf(
        _Dest: *mut wchar_t,
        _Format: *const wchar_t,
        _Args: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtempnam(_Directory: *const wchar_t, _FilePrefix: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _snwscanf(
        _Src: *const wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wfdopen(_FileHandle: ::std::os::raw::c_int, _Mode: *const wchar_t) -> *mut FILE;
}
extern "C" {
    pub fn _wfopen(_Filename: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
}
extern "C" {
    pub fn _wfreopen(
        _Filename: *const wchar_t,
        _Mode: *const wchar_t,
        _OldFile: *mut FILE,
    ) -> *mut FILE;
}
extern "C" {
    pub fn _wpopen(_Command: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
}
extern "C" {
    pub fn _wremove(_Filename: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtmpnam(_Buffer: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _fgetwc_nolock(_File: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _fputwc_nolock(_Ch: wchar_t, _File: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _ungetwc_nolock(_Ch: wint_t, _File: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _lock_file(_File: *mut FILE);
}
extern "C" {
    pub fn _unlock_file(_File: *mut FILE);
}
extern "C" {
    pub fn _fclose_nolock(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fflush_nolock(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fread_nolock(
        _DstBuf: *mut ::std::os::raw::c_void,
        _ElementSize: usize,
        _Count: usize,
        _File: *mut FILE,
    ) -> usize;
}
extern "C" {
    pub fn _fseek_nolock(
        _File: *mut FILE,
        _Offset: ::std::os::raw::c_long,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ftell_nolock(_File: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _fseeki64_nolock(
        _File: *mut FILE,
        _Offset: ::std::os::raw::c_longlong,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ftelli64_nolock(_File: *mut FILE) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _fwrite_nolock(
        _DstBuf: *const ::std::os::raw::c_void,
        _Size: usize,
        _Count: usize,
        _File: *mut FILE,
    ) -> usize;
}
extern "C" {
    pub fn _ungetc_nolock(_Ch: ::std::os::raw::c_int, _File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tempnam(
        _Directory: *const ::std::os::raw::c_char,
        _FilePrefix: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fcloseall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fdopen(
        _FileHandle: ::std::os::raw::c_int,
        _Format: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fgetchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fileno(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn flushall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fputchar(_Ch: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getw(_File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putw(_Ch: ::std::os::raw::c_int, _File: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rmtmp() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_str_wide_utf8(
        wptr: *const wchar_t,
        mbptr: *mut *mut ::std::os::raw::c_char,
        buflen: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_str_utf8_wide(
        mbptr: *const ::std::os::raw::c_char,
        wptr: *mut *mut wchar_t,
        buflen: *mut usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __mingw_str_free(ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn _wspawnl(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const wchar_t,
        _ArgList: *const wchar_t,
        ...
    ) -> isize;
}
extern "C" {
    pub fn _wspawnle(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const wchar_t,
        _ArgList: *const wchar_t,
        ...
    ) -> isize;
}
extern "C" {
    pub fn _wspawnlp(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const wchar_t,
        _ArgList: *const wchar_t,
        ...
    ) -> isize;
}
extern "C" {
    pub fn _wspawnlpe(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const wchar_t,
        _ArgList: *const wchar_t,
        ...
    ) -> isize;
}
extern "C" {
    pub fn _wspawnv(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const wchar_t,
        _ArgList: *const *const wchar_t,
    ) -> isize;
}
extern "C" {
    pub fn _wspawnve(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const wchar_t,
        _ArgList: *const *const wchar_t,
        _Env: *const *const wchar_t,
    ) -> isize;
}
extern "C" {
    pub fn _wspawnvp(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const wchar_t,
        _ArgList: *const *const wchar_t,
    ) -> isize;
}
extern "C" {
    pub fn _wspawnvpe(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const wchar_t,
        _ArgList: *const *const wchar_t,
        _Env: *const *const wchar_t,
    ) -> isize;
}
extern "C" {
    pub fn _spawnv(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const ::std::os::raw::c_char,
        _ArgList: *const *const ::std::os::raw::c_char,
    ) -> isize;
}
extern "C" {
    pub fn _spawnve(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const ::std::os::raw::c_char,
        _ArgList: *const *const ::std::os::raw::c_char,
        _Env: *const *const ::std::os::raw::c_char,
    ) -> isize;
}
extern "C" {
    pub fn _spawnvp(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const ::std::os::raw::c_char,
        _ArgList: *const *const ::std::os::raw::c_char,
    ) -> isize;
}
extern "C" {
    pub fn _spawnvpe(
        _Mode: ::std::os::raw::c_int,
        _Filename: *const ::std::os::raw::c_char,
        _ArgList: *const *const ::std::os::raw::c_char,
        _Env: *const *const ::std::os::raw::c_char,
    ) -> isize;
}
extern "C" {
    pub fn clearerr_s(_File: *mut FILE) -> errno_t;
}
extern "C" {
    pub fn fread_s(
        _DstBuf: *mut ::std::os::raw::c_void,
        _DstSize: usize,
        _ElementSize: usize,
        _Count: usize,
        _File: *mut FILE,
    ) -> usize;
}
extern "C" {
    pub fn fprintf_s(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fscanf_s_l(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn printf_s(_Format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scanf_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scanf_s_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snprintf_c(
        _DstBuf: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnprintf_c(
        _DstBuf: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fscanf_l(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _sscanf_l(
        _Src: *const ::std::os::raw::c_char,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _sscanf_s_l(
        _Src: *const ::std::os::raw::c_char,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sscanf_s(
        _Src: *const ::std::os::raw::c_char,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snscanf_s(
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snscanf_l(
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snscanf_s_l(
        _Src: *const ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vfprintf_s(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vprintf_s(
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vsnprintf_s(
        _DstBuf: *mut ::std::os::raw::c_char,
        _DstSize: usize,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnprintf_s(
        _DstBuf: *mut ::std::os::raw::c_char,
        _DstSize: usize,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vsprintf_s(
        _DstBuf: *mut ::std::os::raw::c_char,
        _Size: usize,
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sprintf_s(
        _DstBuf: *mut ::std::os::raw::c_char,
        _DstSize: usize,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snprintf_s(
        _DstBuf: *mut ::std::os::raw::c_char,
        _DstSize: usize,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fprintf_p(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _printf_p(_Format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _sprintf_p(
        _Dst: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vfprintf_p(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vprintf_p(
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsprintf_p(
        _Dst: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scprintf_p(_Format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vscprintf_p(
        _Format: *const ::std::os::raw::c_char,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _printf_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _printf_p_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vprintf_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vprintf_p_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fprintf_l(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fprintf_p_l(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vfprintf_l(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vfprintf_p_l(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _sprintf_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _sprintf_p_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsprintf_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _Format: *const ::std::os::raw::c_char,
        arg1: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsprintf_p_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scprintf_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scprintf_p_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vscprintf_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vscprintf_p_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _printf_s_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vprintf_s_l(
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fprintf_s_l(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vfprintf_s_l(
        _File: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _sprintf_s_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _DstSize: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsprintf_s_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _DstSize: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snprintf_s_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _DstSize: usize,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnprintf_s_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _DstSize: usize,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snprintf_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snprintf_c_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnprintf_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnprintf_c_l(
        _DstBuf: *mut ::std::os::raw::c_char,
        _MaxCount: usize,
        arg1: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fopen_s(
        _File: *mut *mut FILE,
        _Filename: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn freopen_s(
        _File: *mut *mut FILE,
        _Filename: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
        _Stream: *mut FILE,
    ) -> errno_t;
}
extern "C" {
    pub fn gets_s(arg1: *mut ::std::os::raw::c_char, arg2: rsize_t) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn tmpnam_s(arg1: *mut ::std::os::raw::c_char, arg2: rsize_t) -> errno_t;
}
extern "C" {
    pub fn _getws_s(_Str: *mut wchar_t, _SizeInWords: usize) -> *mut wchar_t;
}
extern "C" {
    pub fn fwprintf_s(_File: *mut FILE, _Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wprintf_s(_Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vfwprintf_s(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vwprintf_s(_Format: *const wchar_t, _ArgList: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vswprintf_s(
        _Dst: *mut wchar_t,
        _SizeInWords: usize,
        _Format: *const wchar_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn swprintf_s(
        _Dst: *mut wchar_t,
        _SizeInWords: usize,
        _Format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnwprintf_s(
        _DstBuf: *mut wchar_t,
        _DstSizeInWords: usize,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snwprintf_s(
        _DstBuf: *mut wchar_t,
        _DstSizeInWords: usize,
        _MaxCount: usize,
        _Format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wprintf_s_l(_Format: *const wchar_t, _Locale: _locale_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vwprintf_s_l(
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fwprintf_s_l(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vfwprintf_s_l(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _swprintf_s_l(
        _DstBuf: *mut wchar_t,
        _DstSize: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vswprintf_s_l(
        _DstBuf: *mut wchar_t,
        _DstSize: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snwprintf_s_l(
        _DstBuf: *mut wchar_t,
        _DstSize: usize,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnwprintf_s_l(
        _DstBuf: *mut wchar_t,
        _DstSize: usize,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fwscanf_s_l(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _swscanf_s_l(
        _Src: *const wchar_t,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn swscanf_s(_Src: *const wchar_t, _Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snwscanf_s(
        _Src: *const wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snwscanf_s_l(
        _Src: *const wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wscanf_s_l(_Format: *const wchar_t, _Locale: _locale_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wfopen_s(
        _File: *mut *mut FILE,
        _Filename: *const wchar_t,
        _Mode: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wfreopen_s(
        _File: *mut *mut FILE,
        _Filename: *const wchar_t,
        _Mode: *const wchar_t,
        _OldFile: *mut FILE,
    ) -> errno_t;
}
extern "C" {
    pub fn _wtmpnam_s(_DstBuf: *mut wchar_t, _SizeInWords: usize) -> errno_t;
}
extern "C" {
    pub fn _fwprintf_p(_File: *mut FILE, _Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wprintf_p(_Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vfwprintf_p(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vwprintf_p(_Format: *const wchar_t, _ArgList: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _swprintf_p(
        _DstBuf: *mut wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vswprintf_p(
        _DstBuf: *mut wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scwprintf_p(_Format: *const wchar_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vscwprintf_p(_Format: *const wchar_t, _ArgList: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wprintf_l(_Format: *const wchar_t, _Locale: _locale_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wprintf_p_l(_Format: *const wchar_t, _Locale: _locale_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vwprintf_l(
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vwprintf_p_l(
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fwprintf_l(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fwprintf_p_l(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vfwprintf_l(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vfwprintf_p_l(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _swprintf_c_l(
        _DstBuf: *mut wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _swprintf_p_l(
        _DstBuf: *mut wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vswprintf_c_l(
        _DstBuf: *mut wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vswprintf_p_l(
        _DstBuf: *mut wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scwprintf_l(_Format: *const wchar_t, _Locale: _locale_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _scwprintf_p_l(
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vscwprintf_p_l(
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snwprintf_l(
        _DstBuf: *mut wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vsnwprintf_l(
        _DstBuf: *mut wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __swprintf_l(
        _Dest: *mut wchar_t,
        _Format: *const wchar_t,
        _Plocinfo: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __vswprintf_l(
        _Dest: *mut wchar_t,
        _Format: *const wchar_t,
        _Plocinfo: _locale_t,
        _Args: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _vscwprintf_l(
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fwscanf_l(
        _File: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _swscanf_l(
        _Src: *const wchar_t,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _snwscanf_l(
        _Src: *const wchar_t,
        _MaxCount: usize,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wscanf_l(_Format: *const wchar_t, _Locale: _locale_t, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fread_nolock_s(
        _DstBuf: *mut ::std::os::raw::c_void,
        _DstSize: usize,
        _ElementSize: usize,
        _Count: usize,
        _File: *mut FILE,
    ) -> usize;
}
pub const _SAPP_MAX_TITLE_LENGTH: _bindgen_ty_3 = 128;
pub type _bindgen_ty_3 = u32;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _sapp_state {
    pub valid: bool,
    pub window_width: ::std::os::raw::c_int,
    pub window_height: ::std::os::raw::c_int,
    pub framebuffer_width: ::std::os::raw::c_int,
    pub framebuffer_height: ::std::os::raw::c_int,
    pub sample_count: ::std::os::raw::c_int,
    pub swap_interval: ::std::os::raw::c_int,
    pub dpi_scale: f32,
    pub gles2_fallback: bool,
    pub first_frame: bool,
    pub init_called: bool,
    pub cleanup_called: bool,
    pub quit_requested: bool,
    pub quit_ordered: bool,
    pub html5_canvas_name: *const ::std::os::raw::c_char,
    pub html5_ask_leave_site: bool,
    pub window_title: [::std::os::raw::c_char; 128usize],
    pub window_title_wide: [wchar_t; 128usize],
    pub frame_count: u64,
    pub mouse_x: f32,
    pub mouse_y: f32,
    pub win32_mouse_tracked: bool,
    pub onscreen_keyboard_shown: bool,
    pub event: sapp_event,
    pub desc: sapp_desc,
    pub keycodes: [sapp_keycode; 512usize],
}
extern "C" {
    pub static mut _sapp: _sapp_state;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _sapp_gl_fbconfig {
    pub red_bits: ::std::os::raw::c_int,
    pub green_bits: ::std::os::raw::c_int,
    pub blue_bits: ::std::os::raw::c_int,
    pub alpha_bits: ::std::os::raw::c_int,
    pub depth_bits: ::std::os::raw::c_int,
    pub stencil_bits: ::std::os::raw::c_int,
    pub samples: ::std::os::raw::c_int,
    pub doublebuffer: bool,
    pub handle: usize,
}
extern "C" {
    pub fn __C_specific_handler(
        _ExceptionRecord: *mut _EXCEPTION_RECORD,
        _EstablisherFrame: *mut ::std::os::raw::c_void,
        _ContextRecord: *mut _CONTEXT,
        _DispatcherContext: *mut _DISPATCHER_CONTEXT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _exception_code() -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _exception_info() -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _abnormal_termination() -> ::std::os::raw::c_int;
}
pub type _PHNDLR = ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _XCPT_ACTION {
    pub XcptNum: ::std::os::raw::c_ulong,
    pub SigNum: ::std::os::raw::c_int,
    pub XcptAction: _PHNDLR,
}
extern "C" {
    pub static mut _XcptActTab: [_XCPT_ACTION; 0usize];
}
extern "C" {
    pub static mut _XcptActTabCount: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut _XcptActTabSize: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut _First_FPE_Indx: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut _Num_FPE: ::std::os::raw::c_int;
}
extern "C" {
    pub fn __CppXcptFilter(
        _ExceptionNum: ::std::os::raw::c_ulong,
        _ExceptionPtr: *mut _EXCEPTION_POINTERS,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _XcptFilter(
        _ExceptionNum: ::std::os::raw::c_ulong,
        _ExceptionPtr: *mut _EXCEPTION_POINTERS,
    ) -> ::std::os::raw::c_int;
}
pub type PEXCEPTION_HANDLER = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut _EXCEPTION_RECORD,
        arg2: *mut ::std::os::raw::c_void,
        arg3: *mut _CONTEXT,
        arg4: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int,
>;
pub type ULONG = ::std::os::raw::c_ulong;
pub type PULONG = *mut ULONG;
pub type USHORT = ::std::os::raw::c_ushort;
pub type PUSHORT = *mut USHORT;
pub type UCHAR = ::std::os::raw::c_uchar;
pub type PUCHAR = *mut UCHAR;
pub type PSZ = *mut ::std::os::raw::c_char;
pub type WINBOOL = ::std::os::raw::c_int;
pub type BOOL = ::std::os::raw::c_int;
pub type PBOOL = *mut WINBOOL;
pub type LPBOOL = *mut WINBOOL;
pub type BYTE = ::std::os::raw::c_uchar;
pub type WORD = ::std::os::raw::c_ushort;
pub type DWORD = ::std::os::raw::c_ulong;
pub type FLOAT = f32;
pub type PFLOAT = *mut FLOAT;
pub type PBYTE = *mut BYTE;
pub type LPBYTE = *mut BYTE;
pub type PINT = *mut ::std::os::raw::c_int;
pub type LPINT = *mut ::std::os::raw::c_int;
pub type PWORD = *mut WORD;
pub type LPWORD = *mut WORD;
pub type LPLONG = *mut ::std::os::raw::c_long;
pub type PDWORD = *mut DWORD;
pub type LPDWORD = *mut DWORD;
pub type LPVOID = *mut ::std::os::raw::c_void;
pub type LPCVOID = *const ::std::os::raw::c_void;
pub type INT = ::std::os::raw::c_int;
pub type UINT = ::std::os::raw::c_uint;
pub type PUINT = *mut ::std::os::raw::c_uint;
extern "C" {
    pub static mut __imp__pctype: *mut *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub static mut __imp__wctype: *mut *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub static mut __imp__pwctype: *mut *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub static mut __newclmap: [::std::os::raw::c_uchar; 0usize];
}
extern "C" {
    pub static mut __newcumap: [::std::os::raw::c_uchar; 0usize];
}
extern "C" {
    pub static mut __ptlocinfo: pthreadlocinfo;
}
extern "C" {
    pub static mut __ptmbcinfo: pthreadmbcinfo;
}
extern "C" {
    pub static mut __globallocalestatus: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut __locale_changed: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut __initiallocinfo: threadlocaleinfostruct;
}
extern "C" {
    pub static mut __initiallocalestructinfo: _locale_tstruct;
}
extern "C" {
    pub fn __updatetlocinfo() -> pthreadlocinfo;
}
extern "C" {
    pub fn __updatetmbcinfo() -> pthreadmbcinfo;
}
extern "C" {
    pub fn _isctype(
        _C: ::std::os::raw::c_int,
        _Type: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isctype_l(
        _C: ::std::os::raw::c_int,
        _Type: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isalpha(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isalpha_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isupper(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isupper_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn islower(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _islower_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isdigit(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isdigit_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isxdigit(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isxdigit_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isspace(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isspace_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ispunct(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ispunct_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isalnum(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isalnum_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isprint(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isprint_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isgraph(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isgraph_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iscntrl(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iscntrl_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn toupper(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tolower(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _tolower(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _tolower_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _toupper(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _toupper_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __isascii(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __toascii(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iscsymf(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iscsym(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isblank(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswalpha(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswalpha_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswupper(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswupper_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswlower(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswlower_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswdigit(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswdigit_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswxdigit(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswxdigit_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswspace(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswspace_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswpunct(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswpunct_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswalnum(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswalnum_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswprint(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswprint_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswgraph(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswgraph_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswcntrl(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswcntrl_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswascii(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isleadbyte(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isleadbyte_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn towupper(_C: wint_t) -> wint_t;
}
extern "C" {
    pub fn _towupper_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
}
extern "C" {
    pub fn towlower(_C: wint_t) -> wint_t;
}
extern "C" {
    pub fn _towlower_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
}
extern "C" {
    pub fn iswctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswctype_l(_C: wint_t, _Type: wctype_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iswcsymf(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswcsymf_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iswcsym(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswcsym_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn is_wctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswblank(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __faststorefence();
}
extern "C" {
    pub fn __stosq(
        arg1: *mut ::std::os::raw::c_ulonglong,
        arg2: ::std::os::raw::c_ulonglong,
        arg3: usize,
    );
}
extern "C" {
    pub fn _interlockedbittestandset64(
        a: *mut ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _interlockedbittestandreset64(
        a: *mut ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _interlockedbittestandcomplement64(
        a: *mut ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn InterlockedBitTestAndSet64(
        a: *mut ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn InterlockedBitTestAndReset64(
        a: *mut ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn InterlockedBitTestAndComplement64(
        a: *mut ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _InterlockedAnd64(
        arg1: *mut ::std::os::raw::c_longlong,
        arg2: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedOr64(
        arg1: *mut ::std::os::raw::c_longlong,
        arg2: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedXor64(
        arg1: *mut ::std::os::raw::c_longlong,
        arg2: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedIncrement64(
        Addend: *mut ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedDecrement64(
        Addend: *mut ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedExchange64(
        Target: *mut ::std::os::raw::c_longlong,
        Value: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedExchangeAdd64(
        Addend: *mut ::std::os::raw::c_longlong,
        Value: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn __readgsbyte(Offset: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn __readgsword(Offset: ::std::os::raw::c_ulong) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn __readgsdword(Offset: ::std::os::raw::c_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn __readgsqword(Offset: ::std::os::raw::c_ulong) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn __writegsbyte(Offset: ::std::os::raw::c_ulong, Data: ::std::os::raw::c_uchar);
}
extern "C" {
    pub fn __writegsword(Offset: ::std::os::raw::c_ulong, Data: ::std::os::raw::c_ushort);
}
extern "C" {
    pub fn __writegsdword(Offset: ::std::os::raw::c_ulong, Data: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn __writegsqword(Offset: ::std::os::raw::c_ulong, Data: ::std::os::raw::c_ulonglong);
}
extern "C" {
    pub fn _BitScanForward64(
        Index: *mut ::std::os::raw::c_ulong,
        Mask: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _BitScanReverse64(
        Index: *mut ::std::os::raw::c_ulong,
        Mask: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittest64(
        a: *const ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandset64(
        a: *mut ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandreset64(
        a: *mut ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandcomplement64(
        a: *mut ::std::os::raw::c_longlong,
        b: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn __movsq(
        Dest: *mut ::std::os::raw::c_ulonglong,
        Source: *const ::std::os::raw::c_ulonglong,
        Count: usize,
    );
}
extern "C" {
    pub fn _InterlockedAnd(
        arg1: *mut ::std::os::raw::c_long,
        arg2: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedOr(
        arg1: *mut ::std::os::raw::c_long,
        arg2: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedXor(
        arg1: *mut ::std::os::raw::c_long,
        arg2: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedIncrement16(Addend: *mut ::std::os::raw::c_short)
        -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn _InterlockedDecrement16(Addend: *mut ::std::os::raw::c_short)
        -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn _InterlockedCompareExchange16(
        Destination: *mut ::std::os::raw::c_short,
        ExChange: ::std::os::raw::c_short,
        Comperand: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn _InterlockedExchangeAdd(
        Addend: *mut ::std::os::raw::c_long,
        Value: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedCompareExchange(
        Destination: *mut ::std::os::raw::c_long,
        ExChange: ::std::os::raw::c_long,
        Comperand: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedIncrement(Addend: *mut ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedDecrement(Addend: *mut ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedAdd(
        Addend: *mut ::std::os::raw::c_long,
        Value: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedAdd64(
        Addend: *mut ::std::os::raw::c_longlong,
        Value: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedExchange(
        Target: *mut ::std::os::raw::c_long,
        Value: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedCompareExchange64(
        Destination: *mut ::std::os::raw::c_longlong,
        ExChange: ::std::os::raw::c_longlong,
        Comperand: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedCompareExchangePointer(
        Destination: *mut *mut ::std::os::raw::c_void,
        ExChange: *mut ::std::os::raw::c_void,
        Comperand: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _InterlockedExchangePointer(
        Target: *mut *mut ::std::os::raw::c_void,
        Value: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn __int2c();
}
extern "C" {
    pub fn __stosb(arg1: *mut ::std::os::raw::c_uchar, arg2: ::std::os::raw::c_uchar, arg3: usize);
}
extern "C" {
    pub fn __stosw(
        arg1: *mut ::std::os::raw::c_ushort,
        arg2: ::std::os::raw::c_ushort,
        arg3: usize,
    );
}
extern "C" {
    pub fn __stosd(arg1: *mut ::std::os::raw::c_ulong, arg2: ::std::os::raw::c_ulong, arg3: usize);
}
extern "C" {
    pub fn _interlockedbittestandset(
        a: *mut ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _interlockedbittestandreset(
        a: *mut ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _interlockedbittestandcomplement(
        a: *mut ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn InterlockedBitTestAndSet(
        a: *mut ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn InterlockedBitTestAndReset(
        a: *mut ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn InterlockedBitTestAndComplement(
        a: *mut ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _BitScanForward(
        Index: *mut ::std::os::raw::c_ulong,
        Mask: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _BitScanReverse(
        Index: *mut ::std::os::raw::c_ulong,
        Mask: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittest(
        a: *const ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandset(
        a: *mut ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandreset(
        a: *mut ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandcomplement(
        a: *mut ::std::os::raw::c_long,
        b: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn __movsb(
        Destination: *mut ::std::os::raw::c_uchar,
        Source: *const ::std::os::raw::c_uchar,
        Count: usize,
    );
}
extern "C" {
    pub fn __movsw(
        Dest: *mut ::std::os::raw::c_ushort,
        Source: *const ::std::os::raw::c_ushort,
        Count: usize,
    );
}
extern "C" {
    pub fn __movsd(
        Dest: *mut ::std::os::raw::c_ulong,
        Source: *const ::std::os::raw::c_ulong,
        Count: usize,
    );
}
pub type POINTER_64_INT = ::std::os::raw::c_ulonglong;
pub type INT8 = ::std::os::raw::c_schar;
pub type PINT8 = *mut ::std::os::raw::c_schar;
pub type INT16 = ::std::os::raw::c_short;
pub type PINT16 = *mut ::std::os::raw::c_short;
pub type INT32 = ::std::os::raw::c_int;
pub type PINT32 = *mut ::std::os::raw::c_int;
pub type INT64 = ::std::os::raw::c_longlong;
pub type PINT64 = *mut ::std::os::raw::c_longlong;
pub type UINT8 = ::std::os::raw::c_uchar;
pub type PUINT8 = *mut ::std::os::raw::c_uchar;
pub type UINT16 = ::std::os::raw::c_ushort;
pub type PUINT16 = *mut ::std::os::raw::c_ushort;
pub type UINT32 = ::std::os::raw::c_uint;
pub type PUINT32 = *mut ::std::os::raw::c_uint;
pub type UINT64 = ::std::os::raw::c_ulonglong;
pub type PUINT64 = *mut ::std::os::raw::c_ulonglong;
pub type LONG32 = ::std::os::raw::c_int;
pub type PLONG32 = *mut ::std::os::raw::c_int;
pub type ULONG32 = ::std::os::raw::c_uint;
pub type PULONG32 = *mut ::std::os::raw::c_uint;
pub type DWORD32 = ::std::os::raw::c_uint;
pub type PDWORD32 = *mut ::std::os::raw::c_uint;
pub type INT_PTR = ::std::os::raw::c_longlong;
pub type PINT_PTR = *mut ::std::os::raw::c_longlong;
pub type UINT_PTR = ::std::os::raw::c_ulonglong;
pub type PUINT_PTR = *mut ::std::os::raw::c_ulonglong;
pub type LONG_PTR = ::std::os::raw::c_longlong;
pub type PLONG_PTR = *mut ::std::os::raw::c_longlong;
pub type ULONG_PTR = ::std::os::raw::c_ulonglong;
pub type PULONG_PTR = *mut ::std::os::raw::c_ulonglong;
pub type SHANDLE_PTR = ::std::os::raw::c_longlong;
pub type HANDLE_PTR = ::std::os::raw::c_ulonglong;
pub type UHALF_PTR = ::std::os::raw::c_uint;
pub type PUHALF_PTR = *mut ::std::os::raw::c_uint;
pub type HALF_PTR = ::std::os::raw::c_int;
pub type PHALF_PTR = *mut ::std::os::raw::c_int;
pub type SIZE_T = ULONG_PTR;
pub type PSIZE_T = *mut ULONG_PTR;
pub type SSIZE_T = LONG_PTR;
pub type PSSIZE_T = *mut LONG_PTR;
pub type DWORD_PTR = ULONG_PTR;
pub type PDWORD_PTR = *mut ULONG_PTR;
pub type LONG64 = ::std::os::raw::c_longlong;
pub type PLONG64 = *mut ::std::os::raw::c_longlong;
pub type ULONG64 = ::std::os::raw::c_ulonglong;
pub type PULONG64 = *mut ::std::os::raw::c_ulonglong;
pub type DWORD64 = ::std::os::raw::c_ulonglong;
pub type PDWORD64 = *mut ::std::os::raw::c_ulonglong;
pub type KAFFINITY = ULONG_PTR;
pub type PKAFFINITY = *mut KAFFINITY;
pub type PVOID = *mut ::std::os::raw::c_void;
pub type PVOID64 = *mut ::std::os::raw::c_void;
pub type CHAR = ::std::os::raw::c_char;
pub type SHORT = ::std::os::raw::c_short;
pub type LONG = ::std::os::raw::c_long;
pub type WCHAR = wchar_t;
pub type PWCHAR = *mut WCHAR;
pub type LPWCH = *mut WCHAR;
pub type PWCH = *mut WCHAR;
pub type LPCWCH = *const WCHAR;
pub type PCWCH = *const WCHAR;
pub type NWPSTR = *mut WCHAR;
pub type LPWSTR = *mut WCHAR;
pub type PWSTR = *mut WCHAR;
pub type PZPWSTR = *mut PWSTR;
pub type PCZPWSTR = *const PWSTR;
pub type LPUWSTR = *mut WCHAR;
pub type PUWSTR = *mut WCHAR;
pub type LPCWSTR = *const WCHAR;
pub type PCWSTR = *const WCHAR;
pub type PZPCWSTR = *mut PCWSTR;
pub type LPCUWSTR = *const WCHAR;
pub type PCUWSTR = *const WCHAR;
pub type PZZWSTR = *mut WCHAR;
pub type PCZZWSTR = *const WCHAR;
pub type PUZZWSTR = *mut WCHAR;
pub type PCUZZWSTR = *const WCHAR;
pub type PNZWCH = *mut WCHAR;
pub type PCNZWCH = *const WCHAR;
pub type PUNZWCH = *mut WCHAR;
pub type PCUNZWCH = *const WCHAR;
pub type PCHAR = *mut CHAR;
pub type LPCH = *mut CHAR;
pub type PCH = *mut CHAR;
pub type LPCCH = *const CHAR;
pub type PCCH = *const CHAR;
pub type NPSTR = *mut CHAR;
pub type LPSTR = *mut CHAR;
pub type PSTR = *mut CHAR;
pub type PZPSTR = *mut PSTR;
pub type PCZPSTR = *const PSTR;
pub type LPCSTR = *const CHAR;
pub type PCSTR = *const CHAR;
pub type PZPCSTR = *mut PCSTR;
pub type PZZSTR = *mut CHAR;
pub type PCZZSTR = *const CHAR;
pub type PNZCH = *mut CHAR;
pub type PCNZCH = *const CHAR;
pub type TCHAR = ::std::os::raw::c_char;
pub type PTCHAR = *mut ::std::os::raw::c_char;
pub type TBYTE = ::std::os::raw::c_uchar;
pub type PTBYTE = *mut ::std::os::raw::c_uchar;
pub type LPTCH = LPSTR;
pub type PTCH = LPSTR;
pub type LPCTCH = LPCCH;
pub type PCTCH = LPCCH;
pub type PTSTR = LPSTR;
pub type LPTSTR = LPSTR;
pub type PUTSTR = LPSTR;
pub type LPUTSTR = LPSTR;
pub type PCTSTR = LPCSTR;
pub type LPCTSTR = LPCSTR;
pub type PCUTSTR = LPCSTR;
pub type LPCUTSTR = LPCSTR;
pub type PZZTSTR = PZZSTR;
pub type PUZZTSTR = PZZSTR;
pub type PCZZTSTR = PCZZSTR;
pub type PCUZZTSTR = PCZZSTR;
pub type PZPTSTR = PZPSTR;
pub type PNZTCH = PNZCH;
pub type PUNZTCH = PNZCH;
pub type PCNZTCH = PCNZCH;
pub type PCUNZTCH = PCNZCH;
pub type PSHORT = *mut SHORT;
pub type PLONG = *mut LONG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GROUP_AFFINITY {
    pub Mask: KAFFINITY,
    pub Group: WORD,
    pub Reserved: [WORD; 3usize],
}
pub type GROUP_AFFINITY = _GROUP_AFFINITY;
pub type PGROUP_AFFINITY = *mut _GROUP_AFFINITY;
pub type HANDLE = *mut ::std::os::raw::c_void;
pub type PHANDLE = *mut HANDLE;
pub type FCHAR = BYTE;
pub type FSHORT = WORD;
pub type FLONG = DWORD;
pub type HRESULT = LONG;
pub type CCHAR = ::std::os::raw::c_char;
pub type LCID = DWORD;
pub type PLCID = PDWORD;
pub type LANGID = WORD;
pub const COMPARTMENT_ID_UNSPECIFIED_COMPARTMENT_ID: COMPARTMENT_ID = 0;
pub const COMPARTMENT_ID_DEFAULT_COMPARTMENT_ID: COMPARTMENT_ID = 1;
pub type COMPARTMENT_ID = u32;
pub type PCOMPARTMENT_ID = *mut COMPARTMENT_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FLOAT128 {
    pub LowPart: ::std::os::raw::c_longlong,
    pub HighPart: ::std::os::raw::c_longlong,
}
pub type FLOAT128 = _FLOAT128;
pub type PFLOAT128 = *mut FLOAT128;
pub type LONGLONG = ::std::os::raw::c_longlong;
pub type ULONGLONG = ::std::os::raw::c_ulonglong;
pub type PLONGLONG = *mut LONGLONG;
pub type PULONGLONG = *mut ULONGLONG;
pub type USN = LONGLONG;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _LARGE_INTEGER {
    pub __bindgen_anon_1: _LARGE_INTEGER__bindgen_ty_1,
    pub u: _LARGE_INTEGER__bindgen_ty_2,
    pub QuadPart: LONGLONG,
    _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LARGE_INTEGER__bindgen_ty_1 {
    pub LowPart: DWORD,
    pub HighPart: LONG,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LARGE_INTEGER__bindgen_ty_2 {
    pub LowPart: DWORD,
    pub HighPart: LONG,
}
pub type LARGE_INTEGER = _LARGE_INTEGER;
pub type PLARGE_INTEGER = *mut LARGE_INTEGER;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _ULARGE_INTEGER {
    pub __bindgen_anon_1: _ULARGE_INTEGER__bindgen_ty_1,
    pub u: _ULARGE_INTEGER__bindgen_ty_2,
    pub QuadPart: ULONGLONG,
    _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ULARGE_INTEGER__bindgen_ty_1 {
    pub LowPart: DWORD,
    pub HighPart: DWORD,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ULARGE_INTEGER__bindgen_ty_2 {
    pub LowPart: DWORD,
    pub HighPart: DWORD,
}
pub type ULARGE_INTEGER = _ULARGE_INTEGER;
pub type PULARGE_INTEGER = *mut ULARGE_INTEGER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LUID {
    pub LowPart: DWORD,
    pub HighPart: LONG,
}
pub type LUID = _LUID;
pub type PLUID = *mut _LUID;
pub type DWORDLONG = ULONGLONG;
pub type PDWORDLONG = *mut DWORDLONG;
extern "C" {
    pub fn _rotl8(
        Value: ::std::os::raw::c_uchar,
        Shift: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _rotl16(
        Value: ::std::os::raw::c_ushort,
        Shift: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn _rotr8(
        Value: ::std::os::raw::c_uchar,
        Shift: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _rotr16(
        Value: ::std::os::raw::c_ushort,
        Shift: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_ushort;
}
pub type BOOLEAN = BYTE;
pub type PBOOLEAN = *mut BOOLEAN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LIST_ENTRY {
    pub Flink: *mut _LIST_ENTRY,
    pub Blink: *mut _LIST_ENTRY,
}
pub type LIST_ENTRY = _LIST_ENTRY;
pub type PLIST_ENTRY = *mut _LIST_ENTRY;
pub type PRLIST_ENTRY = *mut _LIST_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SINGLE_LIST_ENTRY {
    pub Next: *mut _SINGLE_LIST_ENTRY,
}
pub type SINGLE_LIST_ENTRY = _SINGLE_LIST_ENTRY;
pub type PSINGLE_LIST_ENTRY = *mut _SINGLE_LIST_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct LIST_ENTRY32 {
    pub Flink: DWORD,
    pub Blink: DWORD,
}
pub type PLIST_ENTRY32 = *mut LIST_ENTRY32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct LIST_ENTRY64 {
    pub Flink: ULONGLONG,
    pub Blink: ULONGLONG,
}
pub type PLIST_ENTRY64 = *mut LIST_ENTRY64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GUID {
    pub Data1: ::std::os::raw::c_ulong,
    pub Data2: ::std::os::raw::c_ushort,
    pub Data3: ::std::os::raw::c_ushort,
    pub Data4: [::std::os::raw::c_uchar; 8usize],
}
pub type GUID = _GUID;
pub type LPGUID = *mut GUID;
pub type LPCGUID = *const GUID;
pub type IID = GUID;
pub type LPIID = *mut IID;
pub type CLSID = GUID;
pub type LPCLSID = *mut CLSID;
pub type FMTID = GUID;
pub type LPFMTID = *mut FMTID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OBJECTID {
    pub Lineage: GUID,
    pub Uniquifier: DWORD,
}
pub type OBJECTID = _OBJECTID;
pub type EXCEPTION_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        ExceptionRecord: *mut _EXCEPTION_RECORD,
        EstablisherFrame: PVOID,
        ContextRecord: *mut _CONTEXT,
        DispatcherContext: PVOID,
    ) -> ::std::os::raw::c_int,
>;
pub type PEXCEPTION_ROUTINE = EXCEPTION_ROUTINE;
pub type KSPIN_LOCK = ULONG_PTR;
pub type PKSPIN_LOCK = *mut KSPIN_LOCK;
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct _M128A {
    pub Low: ULONGLONG,
    pub High: LONGLONG,
}
pub type M128A = _M128A;
pub type PM128A = *mut _M128A;
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub struct _XSAVE_FORMAT {
    pub ControlWord: WORD,
    pub StatusWord: WORD,
    pub TagWord: BYTE,
    pub Reserved1: BYTE,
    pub ErrorOpcode: WORD,
    pub ErrorOffset: DWORD,
    pub ErrorSelector: WORD,
    pub Reserved2: WORD,
    pub DataOffset: DWORD,
    pub DataSelector: WORD,
    pub Reserved3: WORD,
    pub MxCsr: DWORD,
    pub MxCsr_Mask: DWORD,
    pub FloatRegisters: [M128A; 8usize],
    pub XmmRegisters: [M128A; 16usize],
    pub Reserved4: [BYTE; 96usize],
}
pub type XSAVE_FORMAT = _XSAVE_FORMAT;
pub type PXSAVE_FORMAT = *mut _XSAVE_FORMAT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _XSAVE_AREA_HEADER {
    pub Mask: DWORD64,
    pub Reserved: [DWORD64; 7usize],
}
pub type XSAVE_AREA_HEADER = _XSAVE_AREA_HEADER;
pub type PXSAVE_AREA_HEADER = *mut _XSAVE_AREA_HEADER;
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub struct _XSAVE_AREA {
    pub LegacyState: XSAVE_FORMAT,
    pub Header: XSAVE_AREA_HEADER,
}
pub type XSAVE_AREA = _XSAVE_AREA;
pub type PXSAVE_AREA = *mut _XSAVE_AREA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _XSTATE_CONTEXT {
    pub Mask: DWORD64,
    pub Length: DWORD,
    pub Reserved1: DWORD,
    pub Area: PXSAVE_AREA,
    pub Buffer: PVOID,
}
pub type XSTATE_CONTEXT = _XSTATE_CONTEXT;
pub type PXSTATE_CONTEXT = *mut _XSTATE_CONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCOPE_TABLE_AMD64 {
    pub Count: DWORD,
    pub ScopeRecord: [_SCOPE_TABLE_AMD64__bindgen_ty_1; 1usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCOPE_TABLE_AMD64__bindgen_ty_1 {
    pub BeginAddress: DWORD,
    pub EndAddress: DWORD,
    pub HandlerAddress: DWORD,
    pub JumpTarget: DWORD,
}
pub type SCOPE_TABLE_AMD64 = _SCOPE_TABLE_AMD64;
pub type PSCOPE_TABLE_AMD64 = *mut _SCOPE_TABLE_AMD64;
pub type __m64 = [::std::os::raw::c_longlong; 1usize];
pub type __v1di = [::std::os::raw::c_longlong; 1usize];
pub type __v2si = [::std::os::raw::c_int; 2usize];
pub type __v4hi = [::std::os::raw::c_short; 4usize];
pub type __v8qi = [::std::os::raw::c_char; 8usize];
pub type __v4si = [::std::os::raw::c_int; 4usize];
pub type __v4sf = [f32; 4usize];
pub type __m128 = [f32; 4usize];
pub type __m128_u = [f32; 4usize];
pub type __v4su = [::std::os::raw::c_uint; 4usize];
extern "C" {
    pub fn _mm_sfence();
}
extern "C" {
    pub fn _mm_getcsr() -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _mm_setcsr(__i: ::std::os::raw::c_uint);
}
pub type __m128d = [f64; 2usize];
pub type __m128i = [::std::os::raw::c_longlong; 2usize];
pub type __m128d_u = [f64; 2usize];
pub type __m128i_u = [::std::os::raw::c_longlong; 2usize];
pub type __v2df = [f64; 2usize];
pub type __v2di = [::std::os::raw::c_longlong; 2usize];
pub type __v8hi = [::std::os::raw::c_short; 8usize];
pub type __v16qi = [::std::os::raw::c_char; 16usize];
pub type __v2du = [::std::os::raw::c_ulonglong; 2usize];
pub type __v8hu = [::std::os::raw::c_ushort; 8usize];
pub type __v16qu = [::std::os::raw::c_uchar; 16usize];
pub type __v16qs = [::std::os::raw::c_schar; 16usize];
extern "C" {
    pub fn _mm_clflush(__p: *const ::std::os::raw::c_void);
}
extern "C" {
    pub fn _mm_lfence();
}
extern "C" {
    pub fn _mm_mfence();
}
extern "C" {
    pub fn _mm_pause();
}
pub type __v4df = [f64; 4usize];
pub type __v8sf = [f32; 8usize];
pub type __v4di = [::std::os::raw::c_longlong; 4usize];
pub type __v8si = [::std::os::raw::c_int; 8usize];
pub type __v16hi = [::std::os::raw::c_short; 16usize];
pub type __v32qi = [::std::os::raw::c_char; 32usize];
pub type __v4du = [::std::os::raw::c_ulonglong; 4usize];
pub type __v8su = [::std::os::raw::c_uint; 8usize];
pub type __v16hu = [::std::os::raw::c_ushort; 16usize];
pub type __v32qu = [::std::os::raw::c_uchar; 32usize];
pub type __v32qs = [::std::os::raw::c_schar; 32usize];
pub type __m256 = [f32; 8usize];
pub type __m256d = [f64; 4usize];
pub type __m256i = [::std::os::raw::c_longlong; 4usize];
pub type __m256_u = [f32; 8usize];
pub type __m256d_u = [f64; 4usize];
pub type __m256i_u = [::std::os::raw::c_longlong; 4usize];
pub type __v64qi = [::std::os::raw::c_char; 64usize];
pub type __v32hi = [::std::os::raw::c_short; 32usize];
pub type __v8df = [f64; 8usize];
pub type __v16sf = [f32; 16usize];
pub type __v8di = [::std::os::raw::c_longlong; 8usize];
pub type __v16si = [::std::os::raw::c_int; 16usize];
pub type __v64qu = [::std::os::raw::c_uchar; 64usize];
pub type __v32hu = [::std::os::raw::c_ushort; 32usize];
pub type __v8du = [::std::os::raw::c_ulonglong; 8usize];
pub type __v16su = [::std::os::raw::c_uint; 16usize];
pub type __m512 = [f32; 16usize];
pub type __m512d = [f64; 8usize];
pub type __m512i = [::std::os::raw::c_longlong; 8usize];
pub type __m512_u = [f32; 16usize];
pub type __m512d_u = [f64; 8usize];
pub type __m512i_u = [::std::os::raw::c_longlong; 8usize];
pub type __mmask8 = ::std::os::raw::c_uchar;
pub type __mmask16 = ::std::os::raw::c_ushort;
pub const _MM_CMPINT_ENUM__MM_CMPINT_EQ: _MM_CMPINT_ENUM = 0;
pub const _MM_CMPINT_ENUM__MM_CMPINT_LT: _MM_CMPINT_ENUM = 1;
pub const _MM_CMPINT_ENUM__MM_CMPINT_LE: _MM_CMPINT_ENUM = 2;
pub const _MM_CMPINT_ENUM__MM_CMPINT_UNUSED: _MM_CMPINT_ENUM = 3;
pub const _MM_CMPINT_ENUM__MM_CMPINT_NE: _MM_CMPINT_ENUM = 4;
pub const _MM_CMPINT_ENUM__MM_CMPINT_NLT: _MM_CMPINT_ENUM = 5;
pub const _MM_CMPINT_ENUM__MM_CMPINT_NLE: _MM_CMPINT_ENUM = 6;
pub type _MM_CMPINT_ENUM = u32;
pub const _MM_PERM_ENUM__MM_PERM_AAAA: _MM_PERM_ENUM = 0;
pub const _MM_PERM_ENUM__MM_PERM_AAAB: _MM_PERM_ENUM = 1;
pub const _MM_PERM_ENUM__MM_PERM_AAAC: _MM_PERM_ENUM = 2;
pub const _MM_PERM_ENUM__MM_PERM_AAAD: _MM_PERM_ENUM = 3;
pub const _MM_PERM_ENUM__MM_PERM_AABA: _MM_PERM_ENUM = 4;
pub const _MM_PERM_ENUM__MM_PERM_AABB: _MM_PERM_ENUM = 5;
pub const _MM_PERM_ENUM__MM_PERM_AABC: _MM_PERM_ENUM = 6;
pub const _MM_PERM_ENUM__MM_PERM_AABD: _MM_PERM_ENUM = 7;
pub const _MM_PERM_ENUM__MM_PERM_AACA: _MM_PERM_ENUM = 8;
pub const _MM_PERM_ENUM__MM_PERM_AACB: _MM_PERM_ENUM = 9;
pub const _MM_PERM_ENUM__MM_PERM_AACC: _MM_PERM_ENUM = 10;
pub const _MM_PERM_ENUM__MM_PERM_AACD: _MM_PERM_ENUM = 11;
pub const _MM_PERM_ENUM__MM_PERM_AADA: _MM_PERM_ENUM = 12;
pub const _MM_PERM_ENUM__MM_PERM_AADB: _MM_PERM_ENUM = 13;
pub const _MM_PERM_ENUM__MM_PERM_AADC: _MM_PERM_ENUM = 14;
pub const _MM_PERM_ENUM__MM_PERM_AADD: _MM_PERM_ENUM = 15;
pub const _MM_PERM_ENUM__MM_PERM_ABAA: _MM_PERM_ENUM = 16;
pub const _MM_PERM_ENUM__MM_PERM_ABAB: _MM_PERM_ENUM = 17;
pub const _MM_PERM_ENUM__MM_PERM_ABAC: _MM_PERM_ENUM = 18;
pub const _MM_PERM_ENUM__MM_PERM_ABAD: _MM_PERM_ENUM = 19;
pub const _MM_PERM_ENUM__MM_PERM_ABBA: _MM_PERM_ENUM = 20;
pub const _MM_PERM_ENUM__MM_PERM_ABBB: _MM_PERM_ENUM = 21;
pub const _MM_PERM_ENUM__MM_PERM_ABBC: _MM_PERM_ENUM = 22;
pub const _MM_PERM_ENUM__MM_PERM_ABBD: _MM_PERM_ENUM = 23;
pub const _MM_PERM_ENUM__MM_PERM_ABCA: _MM_PERM_ENUM = 24;
pub const _MM_PERM_ENUM__MM_PERM_ABCB: _MM_PERM_ENUM = 25;
pub const _MM_PERM_ENUM__MM_PERM_ABCC: _MM_PERM_ENUM = 26;
pub const _MM_PERM_ENUM__MM_PERM_ABCD: _MM_PERM_ENUM = 27;
pub const _MM_PERM_ENUM__MM_PERM_ABDA: _MM_PERM_ENUM = 28;
pub const _MM_PERM_ENUM__MM_PERM_ABDB: _MM_PERM_ENUM = 29;
pub const _MM_PERM_ENUM__MM_PERM_ABDC: _MM_PERM_ENUM = 30;
pub const _MM_PERM_ENUM__MM_PERM_ABDD: _MM_PERM_ENUM = 31;
pub const _MM_PERM_ENUM__MM_PERM_ACAA: _MM_PERM_ENUM = 32;
pub const _MM_PERM_ENUM__MM_PERM_ACAB: _MM_PERM_ENUM = 33;
pub const _MM_PERM_ENUM__MM_PERM_ACAC: _MM_PERM_ENUM = 34;
pub const _MM_PERM_ENUM__MM_PERM_ACAD: _MM_PERM_ENUM = 35;
pub const _MM_PERM_ENUM__MM_PERM_ACBA: _MM_PERM_ENUM = 36;
pub const _MM_PERM_ENUM__MM_PERM_ACBB: _MM_PERM_ENUM = 37;
pub const _MM_PERM_ENUM__MM_PERM_ACBC: _MM_PERM_ENUM = 38;
pub const _MM_PERM_ENUM__MM_PERM_ACBD: _MM_PERM_ENUM = 39;
pub const _MM_PERM_ENUM__MM_PERM_ACCA: _MM_PERM_ENUM = 40;
pub const _MM_PERM_ENUM__MM_PERM_ACCB: _MM_PERM_ENUM = 41;
pub const _MM_PERM_ENUM__MM_PERM_ACCC: _MM_PERM_ENUM = 42;
pub const _MM_PERM_ENUM__MM_PERM_ACCD: _MM_PERM_ENUM = 43;
pub const _MM_PERM_ENUM__MM_PERM_ACDA: _MM_PERM_ENUM = 44;
pub const _MM_PERM_ENUM__MM_PERM_ACDB: _MM_PERM_ENUM = 45;
pub const _MM_PERM_ENUM__MM_PERM_ACDC: _MM_PERM_ENUM = 46;
pub const _MM_PERM_ENUM__MM_PERM_ACDD: _MM_PERM_ENUM = 47;
pub const _MM_PERM_ENUM__MM_PERM_ADAA: _MM_PERM_ENUM = 48;
pub const _MM_PERM_ENUM__MM_PERM_ADAB: _MM_PERM_ENUM = 49;
pub const _MM_PERM_ENUM__MM_PERM_ADAC: _MM_PERM_ENUM = 50;
pub const _MM_PERM_ENUM__MM_PERM_ADAD: _MM_PERM_ENUM = 51;
pub const _MM_PERM_ENUM__MM_PERM_ADBA: _MM_PERM_ENUM = 52;
pub const _MM_PERM_ENUM__MM_PERM_ADBB: _MM_PERM_ENUM = 53;
pub const _MM_PERM_ENUM__MM_PERM_ADBC: _MM_PERM_ENUM = 54;
pub const _MM_PERM_ENUM__MM_PERM_ADBD: _MM_PERM_ENUM = 55;
pub const _MM_PERM_ENUM__MM_PERM_ADCA: _MM_PERM_ENUM = 56;
pub const _MM_PERM_ENUM__MM_PERM_ADCB: _MM_PERM_ENUM = 57;
pub const _MM_PERM_ENUM__MM_PERM_ADCC: _MM_PERM_ENUM = 58;
pub const _MM_PERM_ENUM__MM_PERM_ADCD: _MM_PERM_ENUM = 59;
pub const _MM_PERM_ENUM__MM_PERM_ADDA: _MM_PERM_ENUM = 60;
pub const _MM_PERM_ENUM__MM_PERM_ADDB: _MM_PERM_ENUM = 61;
pub const _MM_PERM_ENUM__MM_PERM_ADDC: _MM_PERM_ENUM = 62;
pub const _MM_PERM_ENUM__MM_PERM_ADDD: _MM_PERM_ENUM = 63;
pub const _MM_PERM_ENUM__MM_PERM_BAAA: _MM_PERM_ENUM = 64;
pub const _MM_PERM_ENUM__MM_PERM_BAAB: _MM_PERM_ENUM = 65;
pub const _MM_PERM_ENUM__MM_PERM_BAAC: _MM_PERM_ENUM = 66;
pub const _MM_PERM_ENUM__MM_PERM_BAAD: _MM_PERM_ENUM = 67;
pub const _MM_PERM_ENUM__MM_PERM_BABA: _MM_PERM_ENUM = 68;
pub const _MM_PERM_ENUM__MM_PERM_BABB: _MM_PERM_ENUM = 69;
pub const _MM_PERM_ENUM__MM_PERM_BABC: _MM_PERM_ENUM = 70;
pub const _MM_PERM_ENUM__MM_PERM_BABD: _MM_PERM_ENUM = 71;
pub const _MM_PERM_ENUM__MM_PERM_BACA: _MM_PERM_ENUM = 72;
pub const _MM_PERM_ENUM__MM_PERM_BACB: _MM_PERM_ENUM = 73;
pub const _MM_PERM_ENUM__MM_PERM_BACC: _MM_PERM_ENUM = 74;
pub const _MM_PERM_ENUM__MM_PERM_BACD: _MM_PERM_ENUM = 75;
pub const _MM_PERM_ENUM__MM_PERM_BADA: _MM_PERM_ENUM = 76;
pub const _MM_PERM_ENUM__MM_PERM_BADB: _MM_PERM_ENUM = 77;
pub const _MM_PERM_ENUM__MM_PERM_BADC: _MM_PERM_ENUM = 78;
pub const _MM_PERM_ENUM__MM_PERM_BADD: _MM_PERM_ENUM = 79;
pub const _MM_PERM_ENUM__MM_PERM_BBAA: _MM_PERM_ENUM = 80;
pub const _MM_PERM_ENUM__MM_PERM_BBAB: _MM_PERM_ENUM = 81;
pub const _MM_PERM_ENUM__MM_PERM_BBAC: _MM_PERM_ENUM = 82;
pub const _MM_PERM_ENUM__MM_PERM_BBAD: _MM_PERM_ENUM = 83;
pub const _MM_PERM_ENUM__MM_PERM_BBBA: _MM_PERM_ENUM = 84;
pub const _MM_PERM_ENUM__MM_PERM_BBBB: _MM_PERM_ENUM = 85;
pub const _MM_PERM_ENUM__MM_PERM_BBBC: _MM_PERM_ENUM = 86;
pub const _MM_PERM_ENUM__MM_PERM_BBBD: _MM_PERM_ENUM = 87;
pub const _MM_PERM_ENUM__MM_PERM_BBCA: _MM_PERM_ENUM = 88;
pub const _MM_PERM_ENUM__MM_PERM_BBCB: _MM_PERM_ENUM = 89;
pub const _MM_PERM_ENUM__MM_PERM_BBCC: _MM_PERM_ENUM = 90;
pub const _MM_PERM_ENUM__MM_PERM_BBCD: _MM_PERM_ENUM = 91;
pub const _MM_PERM_ENUM__MM_PERM_BBDA: _MM_PERM_ENUM = 92;
pub const _MM_PERM_ENUM__MM_PERM_BBDB: _MM_PERM_ENUM = 93;
pub const _MM_PERM_ENUM__MM_PERM_BBDC: _MM_PERM_ENUM = 94;
pub const _MM_PERM_ENUM__MM_PERM_BBDD: _MM_PERM_ENUM = 95;
pub const _MM_PERM_ENUM__MM_PERM_BCAA: _MM_PERM_ENUM = 96;
pub const _MM_PERM_ENUM__MM_PERM_BCAB: _MM_PERM_ENUM = 97;
pub const _MM_PERM_ENUM__MM_PERM_BCAC: _MM_PERM_ENUM = 98;
pub const _MM_PERM_ENUM__MM_PERM_BCAD: _MM_PERM_ENUM = 99;
pub const _MM_PERM_ENUM__MM_PERM_BCBA: _MM_PERM_ENUM = 100;
pub const _MM_PERM_ENUM__MM_PERM_BCBB: _MM_PERM_ENUM = 101;
pub const _MM_PERM_ENUM__MM_PERM_BCBC: _MM_PERM_ENUM = 102;
pub const _MM_PERM_ENUM__MM_PERM_BCBD: _MM_PERM_ENUM = 103;
pub const _MM_PERM_ENUM__MM_PERM_BCCA: _MM_PERM_ENUM = 104;
pub const _MM_PERM_ENUM__MM_PERM_BCCB: _MM_PERM_ENUM = 105;
pub const _MM_PERM_ENUM__MM_PERM_BCCC: _MM_PERM_ENUM = 106;
pub const _MM_PERM_ENUM__MM_PERM_BCCD: _MM_PERM_ENUM = 107;
pub const _MM_PERM_ENUM__MM_PERM_BCDA: _MM_PERM_ENUM = 108;
pub const _MM_PERM_ENUM__MM_PERM_BCDB: _MM_PERM_ENUM = 109;
pub const _MM_PERM_ENUM__MM_PERM_BCDC: _MM_PERM_ENUM = 110;
pub const _MM_PERM_ENUM__MM_PERM_BCDD: _MM_PERM_ENUM = 111;
pub const _MM_PERM_ENUM__MM_PERM_BDAA: _MM_PERM_ENUM = 112;
pub const _MM_PERM_ENUM__MM_PERM_BDAB: _MM_PERM_ENUM = 113;
pub const _MM_PERM_ENUM__MM_PERM_BDAC: _MM_PERM_ENUM = 114;
pub const _MM_PERM_ENUM__MM_PERM_BDAD: _MM_PERM_ENUM = 115;
pub const _MM_PERM_ENUM__MM_PERM_BDBA: _MM_PERM_ENUM = 116;
pub const _MM_PERM_ENUM__MM_PERM_BDBB: _MM_PERM_ENUM = 117;
pub const _MM_PERM_ENUM__MM_PERM_BDBC: _MM_PERM_ENUM = 118;
pub const _MM_PERM_ENUM__MM_PERM_BDBD: _MM_PERM_ENUM = 119;
pub const _MM_PERM_ENUM__MM_PERM_BDCA: _MM_PERM_ENUM = 120;
pub const _MM_PERM_ENUM__MM_PERM_BDCB: _MM_PERM_ENUM = 121;
pub const _MM_PERM_ENUM__MM_PERM_BDCC: _MM_PERM_ENUM = 122;
pub const _MM_PERM_ENUM__MM_PERM_BDCD: _MM_PERM_ENUM = 123;
pub const _MM_PERM_ENUM__MM_PERM_BDDA: _MM_PERM_ENUM = 124;
pub const _MM_PERM_ENUM__MM_PERM_BDDB: _MM_PERM_ENUM = 125;
pub const _MM_PERM_ENUM__MM_PERM_BDDC: _MM_PERM_ENUM = 126;
pub const _MM_PERM_ENUM__MM_PERM_BDDD: _MM_PERM_ENUM = 127;
pub const _MM_PERM_ENUM__MM_PERM_CAAA: _MM_PERM_ENUM = 128;
pub const _MM_PERM_ENUM__MM_PERM_CAAB: _MM_PERM_ENUM = 129;
pub const _MM_PERM_ENUM__MM_PERM_CAAC: _MM_PERM_ENUM = 130;
pub const _MM_PERM_ENUM__MM_PERM_CAAD: _MM_PERM_ENUM = 131;
pub const _MM_PERM_ENUM__MM_PERM_CABA: _MM_PERM_ENUM = 132;
pub const _MM_PERM_ENUM__MM_PERM_CABB: _MM_PERM_ENUM = 133;
pub const _MM_PERM_ENUM__MM_PERM_CABC: _MM_PERM_ENUM = 134;
pub const _MM_PERM_ENUM__MM_PERM_CABD: _MM_PERM_ENUM = 135;
pub const _MM_PERM_ENUM__MM_PERM_CACA: _MM_PERM_ENUM = 136;
pub const _MM_PERM_ENUM__MM_PERM_CACB: _MM_PERM_ENUM = 137;
pub const _MM_PERM_ENUM__MM_PERM_CACC: _MM_PERM_ENUM = 138;
pub const _MM_PERM_ENUM__MM_PERM_CACD: _MM_PERM_ENUM = 139;
pub const _MM_PERM_ENUM__MM_PERM_CADA: _MM_PERM_ENUM = 140;
pub const _MM_PERM_ENUM__MM_PERM_CADB: _MM_PERM_ENUM = 141;
pub const _MM_PERM_ENUM__MM_PERM_CADC: _MM_PERM_ENUM = 142;
pub const _MM_PERM_ENUM__MM_PERM_CADD: _MM_PERM_ENUM = 143;
pub const _MM_PERM_ENUM__MM_PERM_CBAA: _MM_PERM_ENUM = 144;
pub const _MM_PERM_ENUM__MM_PERM_CBAB: _MM_PERM_ENUM = 145;
pub const _MM_PERM_ENUM__MM_PERM_CBAC: _MM_PERM_ENUM = 146;
pub const _MM_PERM_ENUM__MM_PERM_CBAD: _MM_PERM_ENUM = 147;
pub const _MM_PERM_ENUM__MM_PERM_CBBA: _MM_PERM_ENUM = 148;
pub const _MM_PERM_ENUM__MM_PERM_CBBB: _MM_PERM_ENUM = 149;
pub const _MM_PERM_ENUM__MM_PERM_CBBC: _MM_PERM_ENUM = 150;
pub const _MM_PERM_ENUM__MM_PERM_CBBD: _MM_PERM_ENUM = 151;
pub const _MM_PERM_ENUM__MM_PERM_CBCA: _MM_PERM_ENUM = 152;
pub const _MM_PERM_ENUM__MM_PERM_CBCB: _MM_PERM_ENUM = 153;
pub const _MM_PERM_ENUM__MM_PERM_CBCC: _MM_PERM_ENUM = 154;
pub const _MM_PERM_ENUM__MM_PERM_CBCD: _MM_PERM_ENUM = 155;
pub const _MM_PERM_ENUM__MM_PERM_CBDA: _MM_PERM_ENUM = 156;
pub const _MM_PERM_ENUM__MM_PERM_CBDB: _MM_PERM_ENUM = 157;
pub const _MM_PERM_ENUM__MM_PERM_CBDC: _MM_PERM_ENUM = 158;
pub const _MM_PERM_ENUM__MM_PERM_CBDD: _MM_PERM_ENUM = 159;
pub const _MM_PERM_ENUM__MM_PERM_CCAA: _MM_PERM_ENUM = 160;
pub const _MM_PERM_ENUM__MM_PERM_CCAB: _MM_PERM_ENUM = 161;
pub const _MM_PERM_ENUM__MM_PERM_CCAC: _MM_PERM_ENUM = 162;
pub const _MM_PERM_ENUM__MM_PERM_CCAD: _MM_PERM_ENUM = 163;
pub const _MM_PERM_ENUM__MM_PERM_CCBA: _MM_PERM_ENUM = 164;
pub const _MM_PERM_ENUM__MM_PERM_CCBB: _MM_PERM_ENUM = 165;
pub const _MM_PERM_ENUM__MM_PERM_CCBC: _MM_PERM_ENUM = 166;
pub const _MM_PERM_ENUM__MM_PERM_CCBD: _MM_PERM_ENUM = 167;
pub const _MM_PERM_ENUM__MM_PERM_CCCA: _MM_PERM_ENUM = 168;
pub const _MM_PERM_ENUM__MM_PERM_CCCB: _MM_PERM_ENUM = 169;
pub const _MM_PERM_ENUM__MM_PERM_CCCC: _MM_PERM_ENUM = 170;
pub const _MM_PERM_ENUM__MM_PERM_CCCD: _MM_PERM_ENUM = 171;
pub const _MM_PERM_ENUM__MM_PERM_CCDA: _MM_PERM_ENUM = 172;
pub const _MM_PERM_ENUM__MM_PERM_CCDB: _MM_PERM_ENUM = 173;
pub const _MM_PERM_ENUM__MM_PERM_CCDC: _MM_PERM_ENUM = 174;
pub const _MM_PERM_ENUM__MM_PERM_CCDD: _MM_PERM_ENUM = 175;
pub const _MM_PERM_ENUM__MM_PERM_CDAA: _MM_PERM_ENUM = 176;
pub const _MM_PERM_ENUM__MM_PERM_CDAB: _MM_PERM_ENUM = 177;
pub const _MM_PERM_ENUM__MM_PERM_CDAC: _MM_PERM_ENUM = 178;
pub const _MM_PERM_ENUM__MM_PERM_CDAD: _MM_PERM_ENUM = 179;
pub const _MM_PERM_ENUM__MM_PERM_CDBA: _MM_PERM_ENUM = 180;
pub const _MM_PERM_ENUM__MM_PERM_CDBB: _MM_PERM_ENUM = 181;
pub const _MM_PERM_ENUM__MM_PERM_CDBC: _MM_PERM_ENUM = 182;
pub const _MM_PERM_ENUM__MM_PERM_CDBD: _MM_PERM_ENUM = 183;
pub const _MM_PERM_ENUM__MM_PERM_CDCA: _MM_PERM_ENUM = 184;
pub const _MM_PERM_ENUM__MM_PERM_CDCB: _MM_PERM_ENUM = 185;
pub const _MM_PERM_ENUM__MM_PERM_CDCC: _MM_PERM_ENUM = 186;
pub const _MM_PERM_ENUM__MM_PERM_CDCD: _MM_PERM_ENUM = 187;
pub const _MM_PERM_ENUM__MM_PERM_CDDA: _MM_PERM_ENUM = 188;
pub const _MM_PERM_ENUM__MM_PERM_CDDB: _MM_PERM_ENUM = 189;
pub const _MM_PERM_ENUM__MM_PERM_CDDC: _MM_PERM_ENUM = 190;
pub const _MM_PERM_ENUM__MM_PERM_CDDD: _MM_PERM_ENUM = 191;
pub const _MM_PERM_ENUM__MM_PERM_DAAA: _MM_PERM_ENUM = 192;
pub const _MM_PERM_ENUM__MM_PERM_DAAB: _MM_PERM_ENUM = 193;
pub const _MM_PERM_ENUM__MM_PERM_DAAC: _MM_PERM_ENUM = 194;
pub const _MM_PERM_ENUM__MM_PERM_DAAD: _MM_PERM_ENUM = 195;
pub const _MM_PERM_ENUM__MM_PERM_DABA: _MM_PERM_ENUM = 196;
pub const _MM_PERM_ENUM__MM_PERM_DABB: _MM_PERM_ENUM = 197;
pub const _MM_PERM_ENUM__MM_PERM_DABC: _MM_PERM_ENUM = 198;
pub const _MM_PERM_ENUM__MM_PERM_DABD: _MM_PERM_ENUM = 199;
pub const _MM_PERM_ENUM__MM_PERM_DACA: _MM_PERM_ENUM = 200;
pub const _MM_PERM_ENUM__MM_PERM_DACB: _MM_PERM_ENUM = 201;
pub const _MM_PERM_ENUM__MM_PERM_DACC: _MM_PERM_ENUM = 202;
pub const _MM_PERM_ENUM__MM_PERM_DACD: _MM_PERM_ENUM = 203;
pub const _MM_PERM_ENUM__MM_PERM_DADA: _MM_PERM_ENUM = 204;
pub const _MM_PERM_ENUM__MM_PERM_DADB: _MM_PERM_ENUM = 205;
pub const _MM_PERM_ENUM__MM_PERM_DADC: _MM_PERM_ENUM = 206;
pub const _MM_PERM_ENUM__MM_PERM_DADD: _MM_PERM_ENUM = 207;
pub const _MM_PERM_ENUM__MM_PERM_DBAA: _MM_PERM_ENUM = 208;
pub const _MM_PERM_ENUM__MM_PERM_DBAB: _MM_PERM_ENUM = 209;
pub const _MM_PERM_ENUM__MM_PERM_DBAC: _MM_PERM_ENUM = 210;
pub const _MM_PERM_ENUM__MM_PERM_DBAD: _MM_PERM_ENUM = 211;
pub const _MM_PERM_ENUM__MM_PERM_DBBA: _MM_PERM_ENUM = 212;
pub const _MM_PERM_ENUM__MM_PERM_DBBB: _MM_PERM_ENUM = 213;
pub const _MM_PERM_ENUM__MM_PERM_DBBC: _MM_PERM_ENUM = 214;
pub const _MM_PERM_ENUM__MM_PERM_DBBD: _MM_PERM_ENUM = 215;
pub const _MM_PERM_ENUM__MM_PERM_DBCA: _MM_PERM_ENUM = 216;
pub const _MM_PERM_ENUM__MM_PERM_DBCB: _MM_PERM_ENUM = 217;
pub const _MM_PERM_ENUM__MM_PERM_DBCC: _MM_PERM_ENUM = 218;
pub const _MM_PERM_ENUM__MM_PERM_DBCD: _MM_PERM_ENUM = 219;
pub const _MM_PERM_ENUM__MM_PERM_DBDA: _MM_PERM_ENUM = 220;
pub const _MM_PERM_ENUM__MM_PERM_DBDB: _MM_PERM_ENUM = 221;
pub const _MM_PERM_ENUM__MM_PERM_DBDC: _MM_PERM_ENUM = 222;
pub const _MM_PERM_ENUM__MM_PERM_DBDD: _MM_PERM_ENUM = 223;
pub const _MM_PERM_ENUM__MM_PERM_DCAA: _MM_PERM_ENUM = 224;
pub const _MM_PERM_ENUM__MM_PERM_DCAB: _MM_PERM_ENUM = 225;
pub const _MM_PERM_ENUM__MM_PERM_DCAC: _MM_PERM_ENUM = 226;
pub const _MM_PERM_ENUM__MM_PERM_DCAD: _MM_PERM_ENUM = 227;
pub const _MM_PERM_ENUM__MM_PERM_DCBA: _MM_PERM_ENUM = 228;
pub const _MM_PERM_ENUM__MM_PERM_DCBB: _MM_PERM_ENUM = 229;
pub const _MM_PERM_ENUM__MM_PERM_DCBC: _MM_PERM_ENUM = 230;
pub const _MM_PERM_ENUM__MM_PERM_DCBD: _MM_PERM_ENUM = 231;
pub const _MM_PERM_ENUM__MM_PERM_DCCA: _MM_PERM_ENUM = 232;
pub const _MM_PERM_ENUM__MM_PERM_DCCB: _MM_PERM_ENUM = 233;
pub const _MM_PERM_ENUM__MM_PERM_DCCC: _MM_PERM_ENUM = 234;
pub const _MM_PERM_ENUM__MM_PERM_DCCD: _MM_PERM_ENUM = 235;
pub const _MM_PERM_ENUM__MM_PERM_DCDA: _MM_PERM_ENUM = 236;
pub const _MM_PERM_ENUM__MM_PERM_DCDB: _MM_PERM_ENUM = 237;
pub const _MM_PERM_ENUM__MM_PERM_DCDC: _MM_PERM_ENUM = 238;
pub const _MM_PERM_ENUM__MM_PERM_DCDD: _MM_PERM_ENUM = 239;
pub const _MM_PERM_ENUM__MM_PERM_DDAA: _MM_PERM_ENUM = 240;
pub const _MM_PERM_ENUM__MM_PERM_DDAB: _MM_PERM_ENUM = 241;
pub const _MM_PERM_ENUM__MM_PERM_DDAC: _MM_PERM_ENUM = 242;
pub const _MM_PERM_ENUM__MM_PERM_DDAD: _MM_PERM_ENUM = 243;
pub const _MM_PERM_ENUM__MM_PERM_DDBA: _MM_PERM_ENUM = 244;
pub const _MM_PERM_ENUM__MM_PERM_DDBB: _MM_PERM_ENUM = 245;
pub const _MM_PERM_ENUM__MM_PERM_DDBC: _MM_PERM_ENUM = 246;
pub const _MM_PERM_ENUM__MM_PERM_DDBD: _MM_PERM_ENUM = 247;
pub const _MM_PERM_ENUM__MM_PERM_DDCA: _MM_PERM_ENUM = 248;
pub const _MM_PERM_ENUM__MM_PERM_DDCB: _MM_PERM_ENUM = 249;
pub const _MM_PERM_ENUM__MM_PERM_DDCC: _MM_PERM_ENUM = 250;
pub const _MM_PERM_ENUM__MM_PERM_DDCD: _MM_PERM_ENUM = 251;
pub const _MM_PERM_ENUM__MM_PERM_DDDA: _MM_PERM_ENUM = 252;
pub const _MM_PERM_ENUM__MM_PERM_DDDB: _MM_PERM_ENUM = 253;
pub const _MM_PERM_ENUM__MM_PERM_DDDC: _MM_PERM_ENUM = 254;
pub const _MM_PERM_ENUM__MM_PERM_DDDD: _MM_PERM_ENUM = 255;
pub type _MM_PERM_ENUM = u32;
pub const _MM_MANTISSA_NORM_ENUM__MM_MANT_NORM_1_2: _MM_MANTISSA_NORM_ENUM = 0;
pub const _MM_MANTISSA_NORM_ENUM__MM_MANT_NORM_p5_2: _MM_MANTISSA_NORM_ENUM = 1;
pub const _MM_MANTISSA_NORM_ENUM__MM_MANT_NORM_p5_1: _MM_MANTISSA_NORM_ENUM = 2;
pub const _MM_MANTISSA_NORM_ENUM__MM_MANT_NORM_p75_1p5: _MM_MANTISSA_NORM_ENUM = 3;
pub type _MM_MANTISSA_NORM_ENUM = u32;
pub const _MM_MANTISSA_SIGN_ENUM__MM_MANT_SIGN_src: _MM_MANTISSA_SIGN_ENUM = 0;
pub const _MM_MANTISSA_SIGN_ENUM__MM_MANT_SIGN_zero: _MM_MANTISSA_SIGN_ENUM = 1;
pub const _MM_MANTISSA_SIGN_ENUM__MM_MANT_SIGN_nan: _MM_MANTISSA_SIGN_ENUM = 2;
pub type _MM_MANTISSA_SIGN_ENUM = u32;
pub type __v2hi = [::std::os::raw::c_short; 2usize];
pub type __v4qi = [::std::os::raw::c_char; 4usize];
pub type __v2qi = [::std::os::raw::c_char; 2usize];
pub type __mmask32 = ::std::os::raw::c_uint;
pub type __mmask64 = ::std::os::raw::c_ulonglong;
pub type __m512bh = [::std::os::raw::c_short; 32usize];
pub type __m256bh = [::std::os::raw::c_short; 16usize];
pub type __bfloat16 = ::std::os::raw::c_ushort;
pub type __m128bh = [::std::os::raw::c_short; 8usize];
pub type __v2sf = [f32; 2usize];
extern "C" {
    pub fn __getcallerseflags() -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn __segmentlimit(Selector: DWORD) -> DWORD;
}
extern "C" {
    pub fn __mulh(Multiplier: LONGLONG, Multiplicand: LONGLONG) -> LONGLONG;
}
extern "C" {
    pub fn __umulh(Multiplier: ULONGLONG, Multiplicand: ULONGLONG) -> ULONGLONG;
}
extern "C" {
    pub fn __shiftleft128(LowPart: DWORD64, HighPart: DWORD64, Shift: BYTE) -> DWORD64;
}
extern "C" {
    pub fn __shiftright128(LowPart: DWORD64, HighPart: DWORD64, Shift: BYTE) -> DWORD64;
}
extern "C" {
    pub fn _mul128(Multiplier: LONG64, Multiplicand: LONG64, HighProduct: *mut LONG64) -> LONG64;
}
extern "C" {
    pub fn _umul128(
        Multiplier: DWORD64,
        Multiplicand: DWORD64,
        HighProduct: *mut DWORD64,
    ) -> DWORD64;
}
extern "C" {
    pub fn MultiplyExtract128(Multiplier: LONG64, Multiplicand: LONG64, Shift: BYTE) -> LONG64;
}
extern "C" {
    pub fn UnsignedMultiplyExtract128(
        Multiplier: DWORD64,
        Multiplicand: DWORD64,
        Shift: BYTE,
    ) -> DWORD64;
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub struct _XMM_SAVE_AREA32 {
    pub ControlWord: WORD,
    pub StatusWord: WORD,
    pub TagWord: BYTE,
    pub Reserved1: BYTE,
    pub ErrorOpcode: WORD,
    pub ErrorOffset: DWORD,
    pub ErrorSelector: WORD,
    pub Reserved2: WORD,
    pub DataOffset: DWORD,
    pub DataSelector: WORD,
    pub Reserved3: WORD,
    pub MxCsr: DWORD,
    pub MxCsr_Mask: DWORD,
    pub FloatRegisters: [M128A; 8usize],
    pub XmmRegisters: [M128A; 16usize],
    pub Reserved4: [BYTE; 96usize],
}
pub type XMM_SAVE_AREA32 = _XMM_SAVE_AREA32;
pub type PXMM_SAVE_AREA32 = *mut _XMM_SAVE_AREA32;
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub struct _CONTEXT {
    pub P1Home: DWORD64,
    pub P2Home: DWORD64,
    pub P3Home: DWORD64,
    pub P4Home: DWORD64,
    pub P5Home: DWORD64,
    pub P6Home: DWORD64,
    pub ContextFlags: DWORD,
    pub MxCsr: DWORD,
    pub SegCs: WORD,
    pub SegDs: WORD,
    pub SegEs: WORD,
    pub SegFs: WORD,
    pub SegGs: WORD,
    pub SegSs: WORD,
    pub EFlags: DWORD,
    pub Dr0: DWORD64,
    pub Dr1: DWORD64,
    pub Dr2: DWORD64,
    pub Dr3: DWORD64,
    pub Dr6: DWORD64,
    pub Dr7: DWORD64,
    pub Rax: DWORD64,
    pub Rcx: DWORD64,
    pub Rdx: DWORD64,
    pub Rbx: DWORD64,
    pub Rsp: DWORD64,
    pub Rbp: DWORD64,
    pub Rsi: DWORD64,
    pub Rdi: DWORD64,
    pub R8: DWORD64,
    pub R9: DWORD64,
    pub R10: DWORD64,
    pub R11: DWORD64,
    pub R12: DWORD64,
    pub R13: DWORD64,
    pub R14: DWORD64,
    pub R15: DWORD64,
    pub Rip: DWORD64,
    pub __bindgen_anon_1: _CONTEXT__bindgen_ty_1,
    pub VectorRegister: [M128A; 26usize],
    pub VectorControl: DWORD64,
    pub DebugControl: DWORD64,
    pub LastBranchToRip: DWORD64,
    pub LastBranchFromRip: DWORD64,
    pub LastExceptionToRip: DWORD64,
    pub LastExceptionFromRip: DWORD64,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union _CONTEXT__bindgen_ty_1 {
    pub FltSave: XMM_SAVE_AREA32,
    pub FloatSave: XMM_SAVE_AREA32,
    pub __bindgen_anon_1: _CONTEXT__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u128; 32usize],
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct _CONTEXT__bindgen_ty_1__bindgen_ty_1 {
    pub Header: [M128A; 2usize],
    pub Legacy: [M128A; 8usize],
    pub Xmm0: M128A,
    pub Xmm1: M128A,
    pub Xmm2: M128A,
    pub Xmm3: M128A,
    pub Xmm4: M128A,
    pub Xmm5: M128A,
    pub Xmm6: M128A,
    pub Xmm7: M128A,
    pub Xmm8: M128A,
    pub Xmm9: M128A,
    pub Xmm10: M128A,
    pub Xmm11: M128A,
    pub Xmm12: M128A,
    pub Xmm13: M128A,
    pub Xmm14: M128A,
    pub Xmm15: M128A,
}
pub type CONTEXT = _CONTEXT;
pub type PCONTEXT = *mut _CONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RUNTIME_FUNCTION {
    pub BeginAddress: DWORD,
    pub EndAddress: DWORD,
    pub UnwindData: DWORD,
}
pub type RUNTIME_FUNCTION = _RUNTIME_FUNCTION;
pub type PRUNTIME_FUNCTION = *mut _RUNTIME_FUNCTION;
pub type PGET_RUNTIME_FUNCTION_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(ControlPc: DWORD64, Context: PVOID) -> PRUNTIME_FUNCTION,
>;
pub type POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        Process: HANDLE,
        TableAddress: PVOID,
        Entries: PDWORD,
        Functions: *mut PRUNTIME_FUNCTION,
    ) -> DWORD,
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _LDT_ENTRY {
    pub LimitLow: WORD,
    pub BaseLow: WORD,
    pub HighWord: _LDT_ENTRY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _LDT_ENTRY__bindgen_ty_1 {
    pub Bytes: _LDT_ENTRY__bindgen_ty_1__bindgen_ty_1,
    pub Bits: _LDT_ENTRY__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LDT_ENTRY__bindgen_ty_1__bindgen_ty_1 {
    pub BaseMid: BYTE,
    pub Flags1: BYTE,
    pub Flags2: BYTE,
    pub BaseHi: BYTE,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _LDT_ENTRY__bindgen_ty_1__bindgen_ty_2 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u8>,
}
impl _LDT_ENTRY__bindgen_ty_1__bindgen_ty_2 {
    #[inline]
    pub fn BaseMid(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_BaseMid(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn Type(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 5u8) as u32) }
    }
    #[inline]
    pub fn set_Type(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 5u8, val as u64)
        }
    }
    #[inline]
    pub fn Dpl(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_Dpl(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn Pres(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Pres(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn LimitHi(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_LimitHi(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn Sys(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Sys(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(20usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved_0(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved_0(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(21usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Default_Big(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Default_Big(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(22usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Granularity(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Granularity(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(23usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn BaseHi(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_BaseHi(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(24usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        BaseMid: DWORD,
        Type: DWORD,
        Dpl: DWORD,
        Pres: DWORD,
        LimitHi: DWORD,
        Sys: DWORD,
        Reserved_0: DWORD,
        Default_Big: DWORD,
        Granularity: DWORD,
        BaseHi: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let BaseMid: u32 = unsafe { ::std::mem::transmute(BaseMid) };
            BaseMid as u64
        });
        __bindgen_bitfield_unit.set(8usize, 5u8, {
            let Type: u32 = unsafe { ::std::mem::transmute(Type) };
            Type as u64
        });
        __bindgen_bitfield_unit.set(13usize, 2u8, {
            let Dpl: u32 = unsafe { ::std::mem::transmute(Dpl) };
            Dpl as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let Pres: u32 = unsafe { ::std::mem::transmute(Pres) };
            Pres as u64
        });
        __bindgen_bitfield_unit.set(16usize, 4u8, {
            let LimitHi: u32 = unsafe { ::std::mem::transmute(LimitHi) };
            LimitHi as u64
        });
        __bindgen_bitfield_unit.set(20usize, 1u8, {
            let Sys: u32 = unsafe { ::std::mem::transmute(Sys) };
            Sys as u64
        });
        __bindgen_bitfield_unit.set(21usize, 1u8, {
            let Reserved_0: u32 = unsafe { ::std::mem::transmute(Reserved_0) };
            Reserved_0 as u64
        });
        __bindgen_bitfield_unit.set(22usize, 1u8, {
            let Default_Big: u32 = unsafe { ::std::mem::transmute(Default_Big) };
            Default_Big as u64
        });
        __bindgen_bitfield_unit.set(23usize, 1u8, {
            let Granularity: u32 = unsafe { ::std::mem::transmute(Granularity) };
            Granularity as u64
        });
        __bindgen_bitfield_unit.set(24usize, 8u8, {
            let BaseHi: u32 = unsafe { ::std::mem::transmute(BaseHi) };
            BaseHi as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type LDT_ENTRY = _LDT_ENTRY;
pub type PLDT_ENTRY = *mut _LDT_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXCEPTION_RECORD {
    pub ExceptionCode: DWORD,
    pub ExceptionFlags: DWORD,
    pub ExceptionRecord: *mut _EXCEPTION_RECORD,
    pub ExceptionAddress: PVOID,
    pub NumberParameters: DWORD,
    pub ExceptionInformation: [ULONG_PTR; 15usize],
}
pub type EXCEPTION_RECORD = _EXCEPTION_RECORD;
pub type PEXCEPTION_RECORD = *mut EXCEPTION_RECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXCEPTION_RECORD32 {
    pub ExceptionCode: DWORD,
    pub ExceptionFlags: DWORD,
    pub ExceptionRecord: DWORD,
    pub ExceptionAddress: DWORD,
    pub NumberParameters: DWORD,
    pub ExceptionInformation: [DWORD; 15usize],
}
pub type EXCEPTION_RECORD32 = _EXCEPTION_RECORD32;
pub type PEXCEPTION_RECORD32 = *mut _EXCEPTION_RECORD32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXCEPTION_RECORD64 {
    pub ExceptionCode: DWORD,
    pub ExceptionFlags: DWORD,
    pub ExceptionRecord: DWORD64,
    pub ExceptionAddress: DWORD64,
    pub NumberParameters: DWORD,
    pub __unusedAlignment: DWORD,
    pub ExceptionInformation: [DWORD64; 15usize],
}
pub type EXCEPTION_RECORD64 = _EXCEPTION_RECORD64;
pub type PEXCEPTION_RECORD64 = *mut _EXCEPTION_RECORD64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXCEPTION_POINTERS {
    pub ExceptionRecord: PEXCEPTION_RECORD,
    pub ContextRecord: PCONTEXT,
}
pub type EXCEPTION_POINTERS = _EXCEPTION_POINTERS;
pub type PEXCEPTION_POINTERS = *mut _EXCEPTION_POINTERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _UNWIND_HISTORY_TABLE_ENTRY {
    pub ImageBase: ULONG64,
    pub FunctionEntry: PRUNTIME_FUNCTION,
}
pub type UNWIND_HISTORY_TABLE_ENTRY = _UNWIND_HISTORY_TABLE_ENTRY;
pub type PUNWIND_HISTORY_TABLE_ENTRY = *mut _UNWIND_HISTORY_TABLE_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _UNWIND_HISTORY_TABLE {
    pub Count: ULONG,
    pub LocalHint: BYTE,
    pub GlobalHint: BYTE,
    pub Search: BYTE,
    pub Once: BYTE,
    pub LowAddress: ULONG64,
    pub HighAddress: ULONG64,
    pub Entry: [UNWIND_HISTORY_TABLE_ENTRY; 12usize],
}
pub type UNWIND_HISTORY_TABLE = _UNWIND_HISTORY_TABLE;
pub type PUNWIND_HISTORY_TABLE = *mut _UNWIND_HISTORY_TABLE;
pub type DISPATCHER_CONTEXT = _DISPATCHER_CONTEXT;
pub type PDISPATCHER_CONTEXT = *mut _DISPATCHER_CONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISPATCHER_CONTEXT {
    pub ControlPc: ULONG64,
    pub ImageBase: ULONG64,
    pub FunctionEntry: PRUNTIME_FUNCTION,
    pub EstablisherFrame: ULONG64,
    pub TargetIp: ULONG64,
    pub ContextRecord: PCONTEXT,
    pub LanguageHandler: PEXCEPTION_ROUTINE,
    pub HandlerData: PVOID,
    pub HistoryTable: PUNWIND_HISTORY_TABLE,
    pub ScopeIndex: ULONG,
    pub Fill0: ULONG,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _KNONVOLATILE_CONTEXT_POINTERS {
    pub FloatingContext: [PM128A; 16usize],
    pub IntegerContext: [PULONG64; 16usize],
}
pub type KNONVOLATILE_CONTEXT_POINTERS = _KNONVOLATILE_CONTEXT_POINTERS;
pub type PKNONVOLATILE_CONTEXT_POINTERS = *mut _KNONVOLATILE_CONTEXT_POINTERS;
pub type PACCESS_TOKEN = PVOID;
pub type PSECURITY_DESCRIPTOR = PVOID;
pub type PSID = PVOID;
pub type PCLAIMS_BLOB = PVOID;
pub type ACCESS_MASK = DWORD;
pub type PACCESS_MASK = *mut ACCESS_MASK;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GENERIC_MAPPING {
    pub GenericRead: ACCESS_MASK,
    pub GenericWrite: ACCESS_MASK,
    pub GenericExecute: ACCESS_MASK,
    pub GenericAll: ACCESS_MASK,
}
pub type GENERIC_MAPPING = _GENERIC_MAPPING;
pub type PGENERIC_MAPPING = *mut GENERIC_MAPPING;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LUID_AND_ATTRIBUTES {
    pub Luid: LUID,
    pub Attributes: DWORD,
}
pub type LUID_AND_ATTRIBUTES = _LUID_AND_ATTRIBUTES;
pub type PLUID_AND_ATTRIBUTES = *mut _LUID_AND_ATTRIBUTES;
pub type LUID_AND_ATTRIBUTES_ARRAY = [LUID_AND_ATTRIBUTES; 1usize];
pub type PLUID_AND_ATTRIBUTES_ARRAY = *mut LUID_AND_ATTRIBUTES_ARRAY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SID_IDENTIFIER_AUTHORITY {
    pub Value: [BYTE; 6usize],
}
pub type SID_IDENTIFIER_AUTHORITY = _SID_IDENTIFIER_AUTHORITY;
pub type PSID_IDENTIFIER_AUTHORITY = *mut _SID_IDENTIFIER_AUTHORITY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SID {
    pub Revision: BYTE,
    pub SubAuthorityCount: BYTE,
    pub IdentifierAuthority: SID_IDENTIFIER_AUTHORITY,
    pub SubAuthority: [DWORD; 1usize],
}
pub type SID = _SID;
pub type PISID = *mut _SID;
pub const _SID_NAME_USE_SidTypeUser: _SID_NAME_USE = 1;
pub const _SID_NAME_USE_SidTypeGroup: _SID_NAME_USE = 2;
pub const _SID_NAME_USE_SidTypeDomain: _SID_NAME_USE = 3;
pub const _SID_NAME_USE_SidTypeAlias: _SID_NAME_USE = 4;
pub const _SID_NAME_USE_SidTypeWellKnownGroup: _SID_NAME_USE = 5;
pub const _SID_NAME_USE_SidTypeDeletedAccount: _SID_NAME_USE = 6;
pub const _SID_NAME_USE_SidTypeInvalid: _SID_NAME_USE = 7;
pub const _SID_NAME_USE_SidTypeUnknown: _SID_NAME_USE = 8;
pub const _SID_NAME_USE_SidTypeComputer: _SID_NAME_USE = 9;
pub const _SID_NAME_USE_SidTypeLabel: _SID_NAME_USE = 10;
pub const _SID_NAME_USE_SidTypeLogonSession: _SID_NAME_USE = 11;
pub type _SID_NAME_USE = u32;
pub use self::_SID_NAME_USE as SID_NAME_USE;
pub type PSID_NAME_USE = *mut _SID_NAME_USE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SID_AND_ATTRIBUTES {
    pub Sid: PSID,
    pub Attributes: DWORD,
}
pub type SID_AND_ATTRIBUTES = _SID_AND_ATTRIBUTES;
pub type PSID_AND_ATTRIBUTES = *mut _SID_AND_ATTRIBUTES;
pub type SID_AND_ATTRIBUTES_ARRAY = [SID_AND_ATTRIBUTES; 1usize];
pub type PSID_AND_ATTRIBUTES_ARRAY = *mut SID_AND_ATTRIBUTES_ARRAY;
pub type SID_HASH_ENTRY = ULONG_PTR;
pub type PSID_HASH_ENTRY = *mut ULONG_PTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SID_AND_ATTRIBUTES_HASH {
    pub SidCount: DWORD,
    pub SidAttr: PSID_AND_ATTRIBUTES,
    pub Hash: [SID_HASH_ENTRY; 32usize],
}
pub type SID_AND_ATTRIBUTES_HASH = _SID_AND_ATTRIBUTES_HASH;
pub type PSID_AND_ATTRIBUTES_HASH = *mut _SID_AND_ATTRIBUTES_HASH;
pub const WELL_KNOWN_SID_TYPE_WinNullSid: WELL_KNOWN_SID_TYPE = 0;
pub const WELL_KNOWN_SID_TYPE_WinWorldSid: WELL_KNOWN_SID_TYPE = 1;
pub const WELL_KNOWN_SID_TYPE_WinLocalSid: WELL_KNOWN_SID_TYPE = 2;
pub const WELL_KNOWN_SID_TYPE_WinCreatorOwnerSid: WELL_KNOWN_SID_TYPE = 3;
pub const WELL_KNOWN_SID_TYPE_WinCreatorGroupSid: WELL_KNOWN_SID_TYPE = 4;
pub const WELL_KNOWN_SID_TYPE_WinCreatorOwnerServerSid: WELL_KNOWN_SID_TYPE = 5;
pub const WELL_KNOWN_SID_TYPE_WinCreatorGroupServerSid: WELL_KNOWN_SID_TYPE = 6;
pub const WELL_KNOWN_SID_TYPE_WinNtAuthoritySid: WELL_KNOWN_SID_TYPE = 7;
pub const WELL_KNOWN_SID_TYPE_WinDialupSid: WELL_KNOWN_SID_TYPE = 8;
pub const WELL_KNOWN_SID_TYPE_WinNetworkSid: WELL_KNOWN_SID_TYPE = 9;
pub const WELL_KNOWN_SID_TYPE_WinBatchSid: WELL_KNOWN_SID_TYPE = 10;
pub const WELL_KNOWN_SID_TYPE_WinInteractiveSid: WELL_KNOWN_SID_TYPE = 11;
pub const WELL_KNOWN_SID_TYPE_WinServiceSid: WELL_KNOWN_SID_TYPE = 12;
pub const WELL_KNOWN_SID_TYPE_WinAnonymousSid: WELL_KNOWN_SID_TYPE = 13;
pub const WELL_KNOWN_SID_TYPE_WinProxySid: WELL_KNOWN_SID_TYPE = 14;
pub const WELL_KNOWN_SID_TYPE_WinEnterpriseControllersSid: WELL_KNOWN_SID_TYPE = 15;
pub const WELL_KNOWN_SID_TYPE_WinSelfSid: WELL_KNOWN_SID_TYPE = 16;
pub const WELL_KNOWN_SID_TYPE_WinAuthenticatedUserSid: WELL_KNOWN_SID_TYPE = 17;
pub const WELL_KNOWN_SID_TYPE_WinRestrictedCodeSid: WELL_KNOWN_SID_TYPE = 18;
pub const WELL_KNOWN_SID_TYPE_WinTerminalServerSid: WELL_KNOWN_SID_TYPE = 19;
pub const WELL_KNOWN_SID_TYPE_WinRemoteLogonIdSid: WELL_KNOWN_SID_TYPE = 20;
pub const WELL_KNOWN_SID_TYPE_WinLogonIdsSid: WELL_KNOWN_SID_TYPE = 21;
pub const WELL_KNOWN_SID_TYPE_WinLocalSystemSid: WELL_KNOWN_SID_TYPE = 22;
pub const WELL_KNOWN_SID_TYPE_WinLocalServiceSid: WELL_KNOWN_SID_TYPE = 23;
pub const WELL_KNOWN_SID_TYPE_WinNetworkServiceSid: WELL_KNOWN_SID_TYPE = 24;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinDomainSid: WELL_KNOWN_SID_TYPE = 25;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinAdministratorsSid: WELL_KNOWN_SID_TYPE = 26;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinUsersSid: WELL_KNOWN_SID_TYPE = 27;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinGuestsSid: WELL_KNOWN_SID_TYPE = 28;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinPowerUsersSid: WELL_KNOWN_SID_TYPE = 29;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinAccountOperatorsSid: WELL_KNOWN_SID_TYPE = 30;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinSystemOperatorsSid: WELL_KNOWN_SID_TYPE = 31;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinPrintOperatorsSid: WELL_KNOWN_SID_TYPE = 32;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinBackupOperatorsSid: WELL_KNOWN_SID_TYPE = 33;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinReplicatorSid: WELL_KNOWN_SID_TYPE = 34;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinPreWindows2000CompatibleAccessSid: WELL_KNOWN_SID_TYPE = 35;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinRemoteDesktopUsersSid: WELL_KNOWN_SID_TYPE = 36;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinNetworkConfigurationOperatorsSid: WELL_KNOWN_SID_TYPE = 37;
pub const WELL_KNOWN_SID_TYPE_WinAccountAdministratorSid: WELL_KNOWN_SID_TYPE = 38;
pub const WELL_KNOWN_SID_TYPE_WinAccountGuestSid: WELL_KNOWN_SID_TYPE = 39;
pub const WELL_KNOWN_SID_TYPE_WinAccountKrbtgtSid: WELL_KNOWN_SID_TYPE = 40;
pub const WELL_KNOWN_SID_TYPE_WinAccountDomainAdminsSid: WELL_KNOWN_SID_TYPE = 41;
pub const WELL_KNOWN_SID_TYPE_WinAccountDomainUsersSid: WELL_KNOWN_SID_TYPE = 42;
pub const WELL_KNOWN_SID_TYPE_WinAccountDomainGuestsSid: WELL_KNOWN_SID_TYPE = 43;
pub const WELL_KNOWN_SID_TYPE_WinAccountComputersSid: WELL_KNOWN_SID_TYPE = 44;
pub const WELL_KNOWN_SID_TYPE_WinAccountControllersSid: WELL_KNOWN_SID_TYPE = 45;
pub const WELL_KNOWN_SID_TYPE_WinAccountCertAdminsSid: WELL_KNOWN_SID_TYPE = 46;
pub const WELL_KNOWN_SID_TYPE_WinAccountSchemaAdminsSid: WELL_KNOWN_SID_TYPE = 47;
pub const WELL_KNOWN_SID_TYPE_WinAccountEnterpriseAdminsSid: WELL_KNOWN_SID_TYPE = 48;
pub const WELL_KNOWN_SID_TYPE_WinAccountPolicyAdminsSid: WELL_KNOWN_SID_TYPE = 49;
pub const WELL_KNOWN_SID_TYPE_WinAccountRasAndIasServersSid: WELL_KNOWN_SID_TYPE = 50;
pub const WELL_KNOWN_SID_TYPE_WinNTLMAuthenticationSid: WELL_KNOWN_SID_TYPE = 51;
pub const WELL_KNOWN_SID_TYPE_WinDigestAuthenticationSid: WELL_KNOWN_SID_TYPE = 52;
pub const WELL_KNOWN_SID_TYPE_WinSChannelAuthenticationSid: WELL_KNOWN_SID_TYPE = 53;
pub const WELL_KNOWN_SID_TYPE_WinThisOrganizationSid: WELL_KNOWN_SID_TYPE = 54;
pub const WELL_KNOWN_SID_TYPE_WinOtherOrganizationSid: WELL_KNOWN_SID_TYPE = 55;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinIncomingForestTrustBuildersSid: WELL_KNOWN_SID_TYPE = 56;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinPerfMonitoringUsersSid: WELL_KNOWN_SID_TYPE = 57;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinPerfLoggingUsersSid: WELL_KNOWN_SID_TYPE = 58;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinAuthorizationAccessSid: WELL_KNOWN_SID_TYPE = 59;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinTerminalServerLicenseServersSid: WELL_KNOWN_SID_TYPE = 60;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinDCOMUsersSid: WELL_KNOWN_SID_TYPE = 61;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinIUsersSid: WELL_KNOWN_SID_TYPE = 62;
pub const WELL_KNOWN_SID_TYPE_WinIUserSid: WELL_KNOWN_SID_TYPE = 63;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinCryptoOperatorsSid: WELL_KNOWN_SID_TYPE = 64;
pub const WELL_KNOWN_SID_TYPE_WinUntrustedLabelSid: WELL_KNOWN_SID_TYPE = 65;
pub const WELL_KNOWN_SID_TYPE_WinLowLabelSid: WELL_KNOWN_SID_TYPE = 66;
pub const WELL_KNOWN_SID_TYPE_WinMediumLabelSid: WELL_KNOWN_SID_TYPE = 67;
pub const WELL_KNOWN_SID_TYPE_WinHighLabelSid: WELL_KNOWN_SID_TYPE = 68;
pub const WELL_KNOWN_SID_TYPE_WinSystemLabelSid: WELL_KNOWN_SID_TYPE = 69;
pub const WELL_KNOWN_SID_TYPE_WinWriteRestrictedCodeSid: WELL_KNOWN_SID_TYPE = 70;
pub const WELL_KNOWN_SID_TYPE_WinCreatorOwnerRightsSid: WELL_KNOWN_SID_TYPE = 71;
pub const WELL_KNOWN_SID_TYPE_WinCacheablePrincipalsGroupSid: WELL_KNOWN_SID_TYPE = 72;
pub const WELL_KNOWN_SID_TYPE_WinNonCacheablePrincipalsGroupSid: WELL_KNOWN_SID_TYPE = 73;
pub const WELL_KNOWN_SID_TYPE_WinEnterpriseReadonlyControllersSid: WELL_KNOWN_SID_TYPE = 74;
pub const WELL_KNOWN_SID_TYPE_WinAccountReadonlyControllersSid: WELL_KNOWN_SID_TYPE = 75;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinEventLogReadersGroup: WELL_KNOWN_SID_TYPE = 76;
pub const WELL_KNOWN_SID_TYPE_WinNewEnterpriseReadonlyControllersSid: WELL_KNOWN_SID_TYPE = 77;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinCertSvcDComAccessGroup: WELL_KNOWN_SID_TYPE = 78;
pub const WELL_KNOWN_SID_TYPE_WinMediumPlusLabelSid: WELL_KNOWN_SID_TYPE = 79;
pub const WELL_KNOWN_SID_TYPE_WinLocalLogonSid: WELL_KNOWN_SID_TYPE = 80;
pub const WELL_KNOWN_SID_TYPE_WinConsoleLogonSid: WELL_KNOWN_SID_TYPE = 81;
pub const WELL_KNOWN_SID_TYPE_WinThisOrganizationCertificateSid: WELL_KNOWN_SID_TYPE = 82;
pub const WELL_KNOWN_SID_TYPE_WinApplicationPackageAuthoritySid: WELL_KNOWN_SID_TYPE = 83;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinAnyPackageSid: WELL_KNOWN_SID_TYPE = 84;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityInternetClientSid: WELL_KNOWN_SID_TYPE = 85;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityInternetClientServerSid: WELL_KNOWN_SID_TYPE = 86;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityPrivateNetworkClientServerSid: WELL_KNOWN_SID_TYPE = 87;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityPicturesLibrarySid: WELL_KNOWN_SID_TYPE = 88;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityVideosLibrarySid: WELL_KNOWN_SID_TYPE = 89;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityMusicLibrarySid: WELL_KNOWN_SID_TYPE = 90;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityDocumentsLibrarySid: WELL_KNOWN_SID_TYPE = 91;
pub const WELL_KNOWN_SID_TYPE_WinCapabilitySharedUserCertificatesSid: WELL_KNOWN_SID_TYPE = 92;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityEnterpriseAuthenticationSid: WELL_KNOWN_SID_TYPE = 93;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityRemovableStorageSid: WELL_KNOWN_SID_TYPE = 94;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinRDSRemoteAccessServersSid: WELL_KNOWN_SID_TYPE = 95;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinRDSEndpointServersSid: WELL_KNOWN_SID_TYPE = 96;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinRDSManagementServersSid: WELL_KNOWN_SID_TYPE = 97;
pub const WELL_KNOWN_SID_TYPE_WinUserModeDriversSid: WELL_KNOWN_SID_TYPE = 98;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinHyperVAdminsSid: WELL_KNOWN_SID_TYPE = 99;
pub const WELL_KNOWN_SID_TYPE_WinAccountCloneableControllersSid: WELL_KNOWN_SID_TYPE = 100;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinAccessControlAssistanceOperatorsSid: WELL_KNOWN_SID_TYPE =
    101;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinRemoteManagementUsersSid: WELL_KNOWN_SID_TYPE = 102;
pub const WELL_KNOWN_SID_TYPE_WinAuthenticationAuthorityAssertedSid: WELL_KNOWN_SID_TYPE = 103;
pub const WELL_KNOWN_SID_TYPE_WinAuthenticationServiceAssertedSid: WELL_KNOWN_SID_TYPE = 104;
pub const WELL_KNOWN_SID_TYPE_WinLocalAccountSid: WELL_KNOWN_SID_TYPE = 105;
pub const WELL_KNOWN_SID_TYPE_WinLocalAccountAndAdministratorSid: WELL_KNOWN_SID_TYPE = 106;
pub const WELL_KNOWN_SID_TYPE_WinAccountProtectedUsersSid: WELL_KNOWN_SID_TYPE = 107;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityAppointmentsSid: WELL_KNOWN_SID_TYPE = 108;
pub const WELL_KNOWN_SID_TYPE_WinCapabilityContactsSid: WELL_KNOWN_SID_TYPE = 109;
pub const WELL_KNOWN_SID_TYPE_WinAccountDefaultSystemManagedSid: WELL_KNOWN_SID_TYPE = 110;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinDefaultSystemManagedGroupSid: WELL_KNOWN_SID_TYPE = 111;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinStorageReplicaAdminsSid: WELL_KNOWN_SID_TYPE = 112;
pub const WELL_KNOWN_SID_TYPE_WinAccountKeyAdminsSid: WELL_KNOWN_SID_TYPE = 113;
pub const WELL_KNOWN_SID_TYPE_WinAccountEnterpriseKeyAdminsSid: WELL_KNOWN_SID_TYPE = 114;
pub const WELL_KNOWN_SID_TYPE_WinAuthenticationKeyTrustSid: WELL_KNOWN_SID_TYPE = 115;
pub const WELL_KNOWN_SID_TYPE_WinAuthenticationKeyPropertyMFASid: WELL_KNOWN_SID_TYPE = 116;
pub const WELL_KNOWN_SID_TYPE_WinAuthenticationKeyPropertyAttestationSid: WELL_KNOWN_SID_TYPE = 117;
pub type WELL_KNOWN_SID_TYPE = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACL {
    pub AclRevision: BYTE,
    pub Sbz1: BYTE,
    pub AclSize: WORD,
    pub AceCount: WORD,
    pub Sbz2: WORD,
}
pub type ACL = _ACL;
pub type PACL = *mut ACL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACE_HEADER {
    pub AceType: BYTE,
    pub AceFlags: BYTE,
    pub AceSize: WORD,
}
pub type ACE_HEADER = _ACE_HEADER;
pub type PACE_HEADER = *mut ACE_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACCESS_ALLOWED_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type ACCESS_ALLOWED_ACE = _ACCESS_ALLOWED_ACE;
pub type PACCESS_ALLOWED_ACE = *mut ACCESS_ALLOWED_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACCESS_DENIED_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type ACCESS_DENIED_ACE = _ACCESS_DENIED_ACE;
pub type PACCESS_DENIED_ACE = *mut ACCESS_DENIED_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_AUDIT_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type SYSTEM_AUDIT_ACE = _SYSTEM_AUDIT_ACE;
pub type PSYSTEM_AUDIT_ACE = *mut SYSTEM_AUDIT_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_ALARM_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type SYSTEM_ALARM_ACE = _SYSTEM_ALARM_ACE;
pub type PSYSTEM_ALARM_ACE = *mut SYSTEM_ALARM_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_RESOURCE_ATTRIBUTE_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type SYSTEM_RESOURCE_ATTRIBUTE_ACE = _SYSTEM_RESOURCE_ATTRIBUTE_ACE;
pub type PSYSTEM_RESOURCE_ATTRIBUTE_ACE = *mut _SYSTEM_RESOURCE_ATTRIBUTE_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_SCOPED_POLICY_ID_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type SYSTEM_SCOPED_POLICY_ID_ACE = _SYSTEM_SCOPED_POLICY_ID_ACE;
pub type PSYSTEM_SCOPED_POLICY_ID_ACE = *mut _SYSTEM_SCOPED_POLICY_ID_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_MANDATORY_LABEL_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type SYSTEM_MANDATORY_LABEL_ACE = _SYSTEM_MANDATORY_LABEL_ACE;
pub type PSYSTEM_MANDATORY_LABEL_ACE = *mut _SYSTEM_MANDATORY_LABEL_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACCESS_ALLOWED_OBJECT_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub Flags: DWORD,
    pub ObjectType: GUID,
    pub InheritedObjectType: GUID,
    pub SidStart: DWORD,
}
pub type ACCESS_ALLOWED_OBJECT_ACE = _ACCESS_ALLOWED_OBJECT_ACE;
pub type PACCESS_ALLOWED_OBJECT_ACE = *mut _ACCESS_ALLOWED_OBJECT_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACCESS_DENIED_OBJECT_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub Flags: DWORD,
    pub ObjectType: GUID,
    pub InheritedObjectType: GUID,
    pub SidStart: DWORD,
}
pub type ACCESS_DENIED_OBJECT_ACE = _ACCESS_DENIED_OBJECT_ACE;
pub type PACCESS_DENIED_OBJECT_ACE = *mut _ACCESS_DENIED_OBJECT_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_AUDIT_OBJECT_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub Flags: DWORD,
    pub ObjectType: GUID,
    pub InheritedObjectType: GUID,
    pub SidStart: DWORD,
}
pub type SYSTEM_AUDIT_OBJECT_ACE = _SYSTEM_AUDIT_OBJECT_ACE;
pub type PSYSTEM_AUDIT_OBJECT_ACE = *mut _SYSTEM_AUDIT_OBJECT_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_ALARM_OBJECT_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub Flags: DWORD,
    pub ObjectType: GUID,
    pub InheritedObjectType: GUID,
    pub SidStart: DWORD,
}
pub type SYSTEM_ALARM_OBJECT_ACE = _SYSTEM_ALARM_OBJECT_ACE;
pub type PSYSTEM_ALARM_OBJECT_ACE = *mut _SYSTEM_ALARM_OBJECT_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACCESS_ALLOWED_CALLBACK_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type ACCESS_ALLOWED_CALLBACK_ACE = _ACCESS_ALLOWED_CALLBACK_ACE;
pub type PACCESS_ALLOWED_CALLBACK_ACE = *mut _ACCESS_ALLOWED_CALLBACK_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACCESS_DENIED_CALLBACK_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type ACCESS_DENIED_CALLBACK_ACE = _ACCESS_DENIED_CALLBACK_ACE;
pub type PACCESS_DENIED_CALLBACK_ACE = *mut _ACCESS_DENIED_CALLBACK_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_AUDIT_CALLBACK_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type SYSTEM_AUDIT_CALLBACK_ACE = _SYSTEM_AUDIT_CALLBACK_ACE;
pub type PSYSTEM_AUDIT_CALLBACK_ACE = *mut _SYSTEM_AUDIT_CALLBACK_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_ALARM_CALLBACK_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
pub type SYSTEM_ALARM_CALLBACK_ACE = _SYSTEM_ALARM_CALLBACK_ACE;
pub type PSYSTEM_ALARM_CALLBACK_ACE = *mut _SYSTEM_ALARM_CALLBACK_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub Flags: DWORD,
    pub ObjectType: GUID,
    pub InheritedObjectType: GUID,
    pub SidStart: DWORD,
}
pub type ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
pub type PACCESS_ALLOWED_CALLBACK_OBJECT_ACE = *mut _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub Flags: DWORD,
    pub ObjectType: GUID,
    pub InheritedObjectType: GUID,
    pub SidStart: DWORD,
}
pub type ACCESS_DENIED_CALLBACK_OBJECT_ACE = _ACCESS_DENIED_CALLBACK_OBJECT_ACE;
pub type PACCESS_DENIED_CALLBACK_OBJECT_ACE = *mut _ACCESS_DENIED_CALLBACK_OBJECT_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub Flags: DWORD,
    pub ObjectType: GUID,
    pub InheritedObjectType: GUID,
    pub SidStart: DWORD,
}
pub type SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE;
pub type PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE = *mut _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub Flags: DWORD,
    pub ObjectType: GUID,
    pub InheritedObjectType: GUID,
    pub SidStart: DWORD,
}
pub type SYSTEM_ALARM_CALLBACK_OBJECT_ACE = _SYSTEM_ALARM_CALLBACK_OBJECT_ACE;
pub type PSYSTEM_ALARM_CALLBACK_OBJECT_ACE = *mut _SYSTEM_ALARM_CALLBACK_OBJECT_ACE;
pub const _ACL_INFORMATION_CLASS_AclRevisionInformation: _ACL_INFORMATION_CLASS = 1;
pub const _ACL_INFORMATION_CLASS_AclSizeInformation: _ACL_INFORMATION_CLASS = 2;
pub type _ACL_INFORMATION_CLASS = u32;
pub use self::_ACL_INFORMATION_CLASS as ACL_INFORMATION_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACL_REVISION_INFORMATION {
    pub AclRevision: DWORD,
}
pub type ACL_REVISION_INFORMATION = _ACL_REVISION_INFORMATION;
pub type PACL_REVISION_INFORMATION = *mut ACL_REVISION_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACL_SIZE_INFORMATION {
    pub AceCount: DWORD,
    pub AclBytesInUse: DWORD,
    pub AclBytesFree: DWORD,
}
pub type ACL_SIZE_INFORMATION = _ACL_SIZE_INFORMATION;
pub type PACL_SIZE_INFORMATION = *mut ACL_SIZE_INFORMATION;
pub type SECURITY_DESCRIPTOR_CONTROL = WORD;
pub type PSECURITY_DESCRIPTOR_CONTROL = *mut WORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SECURITY_DESCRIPTOR_RELATIVE {
    pub Revision: BYTE,
    pub Sbz1: BYTE,
    pub Control: SECURITY_DESCRIPTOR_CONTROL,
    pub Owner: DWORD,
    pub Group: DWORD,
    pub Sacl: DWORD,
    pub Dacl: DWORD,
}
pub type SECURITY_DESCRIPTOR_RELATIVE = _SECURITY_DESCRIPTOR_RELATIVE;
pub type PISECURITY_DESCRIPTOR_RELATIVE = *mut _SECURITY_DESCRIPTOR_RELATIVE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SECURITY_DESCRIPTOR {
    pub Revision: BYTE,
    pub Sbz1: BYTE,
    pub Control: SECURITY_DESCRIPTOR_CONTROL,
    pub Owner: PSID,
    pub Group: PSID,
    pub Sacl: PACL,
    pub Dacl: PACL,
}
pub type SECURITY_DESCRIPTOR = _SECURITY_DESCRIPTOR;
pub type PISECURITY_DESCRIPTOR = *mut _SECURITY_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OBJECT_TYPE_LIST {
    pub Level: WORD,
    pub Sbz: WORD,
    pub ObjectType: *mut GUID,
}
pub type OBJECT_TYPE_LIST = _OBJECT_TYPE_LIST;
pub type POBJECT_TYPE_LIST = *mut _OBJECT_TYPE_LIST;
pub const _AUDIT_EVENT_TYPE_AuditEventObjectAccess: _AUDIT_EVENT_TYPE = 0;
pub const _AUDIT_EVENT_TYPE_AuditEventDirectoryServiceAccess: _AUDIT_EVENT_TYPE = 1;
pub type _AUDIT_EVENT_TYPE = u32;
pub use self::_AUDIT_EVENT_TYPE as AUDIT_EVENT_TYPE;
pub type PAUDIT_EVENT_TYPE = *mut _AUDIT_EVENT_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRIVILEGE_SET {
    pub PrivilegeCount: DWORD,
    pub Control: DWORD,
    pub Privilege: [LUID_AND_ATTRIBUTES; 1usize],
}
pub type PRIVILEGE_SET = _PRIVILEGE_SET;
pub type PPRIVILEGE_SET = *mut _PRIVILEGE_SET;
pub const _ACCESS_REASON_TYPE_AccessReasonNone: _ACCESS_REASON_TYPE = 0;
pub const _ACCESS_REASON_TYPE_AccessReasonAllowedAce: _ACCESS_REASON_TYPE = 65536;
pub const _ACCESS_REASON_TYPE_AccessReasonDeniedAce: _ACCESS_REASON_TYPE = 131072;
pub const _ACCESS_REASON_TYPE_AccessReasonAllowedParentAce: _ACCESS_REASON_TYPE = 196608;
pub const _ACCESS_REASON_TYPE_AccessReasonDeniedParentAce: _ACCESS_REASON_TYPE = 262144;
pub const _ACCESS_REASON_TYPE_AccessReasonNotGrantedByCape: _ACCESS_REASON_TYPE = 327680;
pub const _ACCESS_REASON_TYPE_AccessReasonNotGrantedByParentCape: _ACCESS_REASON_TYPE = 393216;
pub const _ACCESS_REASON_TYPE_AccessReasonNotGrantedToAppContainer: _ACCESS_REASON_TYPE = 458752;
pub const _ACCESS_REASON_TYPE_AccessReasonMissingPrivilege: _ACCESS_REASON_TYPE = 1048576;
pub const _ACCESS_REASON_TYPE_AccessReasonFromPrivilege: _ACCESS_REASON_TYPE = 2097152;
pub const _ACCESS_REASON_TYPE_AccessReasonIntegrityLevel: _ACCESS_REASON_TYPE = 3145728;
pub const _ACCESS_REASON_TYPE_AccessReasonOwnership: _ACCESS_REASON_TYPE = 4194304;
pub const _ACCESS_REASON_TYPE_AccessReasonNullDacl: _ACCESS_REASON_TYPE = 5242880;
pub const _ACCESS_REASON_TYPE_AccessReasonEmptyDacl: _ACCESS_REASON_TYPE = 6291456;
pub const _ACCESS_REASON_TYPE_AccessReasonNoSD: _ACCESS_REASON_TYPE = 7340032;
pub const _ACCESS_REASON_TYPE_AccessReasonNoGrant: _ACCESS_REASON_TYPE = 8388608;
pub type _ACCESS_REASON_TYPE = u32;
pub use self::_ACCESS_REASON_TYPE as ACCESS_REASON_TYPE;
pub type ACCESS_REASON = DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACCESS_REASONS {
    pub Data: [ACCESS_REASON; 32usize],
}
pub type ACCESS_REASONS = _ACCESS_REASONS;
pub type PACCESS_REASONS = *mut _ACCESS_REASONS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SE_SECURITY_DESCRIPTOR {
    pub Size: DWORD,
    pub Flags: DWORD,
    pub SecurityDescriptor: PSECURITY_DESCRIPTOR,
}
pub type SE_SECURITY_DESCRIPTOR = _SE_SECURITY_DESCRIPTOR;
pub type PSE_SECURITY_DESCRIPTOR = *mut _SE_SECURITY_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SE_ACCESS_REQUEST {
    pub Size: DWORD,
    pub SeSecurityDescriptor: PSE_SECURITY_DESCRIPTOR,
    pub DesiredAccess: ACCESS_MASK,
    pub PreviouslyGrantedAccess: ACCESS_MASK,
    pub PrincipalSelfSid: PSID,
    pub GenericMapping: PGENERIC_MAPPING,
    pub ObjectTypeListCount: DWORD,
    pub ObjectTypeList: POBJECT_TYPE_LIST,
}
pub type SE_ACCESS_REQUEST = _SE_ACCESS_REQUEST;
pub type PSE_ACCESS_REQUEST = *mut _SE_ACCESS_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SE_ACCESS_REPLY {
    pub Size: DWORD,
    pub ResultListCount: DWORD,
    pub GrantedAccess: PACCESS_MASK,
    pub AccessStatus: PDWORD,
    pub AccessReason: PACCESS_REASONS,
    pub Privileges: *mut PPRIVILEGE_SET,
}
pub type SE_ACCESS_REPLY = _SE_ACCESS_REPLY;
pub type PSE_ACCESS_REPLY = *mut _SE_ACCESS_REPLY;
pub const _SECURITY_IMPERSONATION_LEVEL_SecurityAnonymous: _SECURITY_IMPERSONATION_LEVEL = 0;
pub const _SECURITY_IMPERSONATION_LEVEL_SecurityIdentification: _SECURITY_IMPERSONATION_LEVEL = 1;
pub const _SECURITY_IMPERSONATION_LEVEL_SecurityImpersonation: _SECURITY_IMPERSONATION_LEVEL = 2;
pub const _SECURITY_IMPERSONATION_LEVEL_SecurityDelegation: _SECURITY_IMPERSONATION_LEVEL = 3;
pub type _SECURITY_IMPERSONATION_LEVEL = u32;
pub use self::_SECURITY_IMPERSONATION_LEVEL as SECURITY_IMPERSONATION_LEVEL;
pub type PSECURITY_IMPERSONATION_LEVEL = *mut _SECURITY_IMPERSONATION_LEVEL;
pub const _TOKEN_TYPE_TokenPrimary: _TOKEN_TYPE = 1;
pub const _TOKEN_TYPE_TokenImpersonation: _TOKEN_TYPE = 2;
pub type _TOKEN_TYPE = u32;
pub use self::_TOKEN_TYPE as TOKEN_TYPE;
pub type PTOKEN_TYPE = *mut TOKEN_TYPE;
pub const _TOKEN_ELEVATION_TYPE_TokenElevationTypeDefault: _TOKEN_ELEVATION_TYPE = 1;
pub const _TOKEN_ELEVATION_TYPE_TokenElevationTypeFull: _TOKEN_ELEVATION_TYPE = 2;
pub const _TOKEN_ELEVATION_TYPE_TokenElevationTypeLimited: _TOKEN_ELEVATION_TYPE = 3;
pub type _TOKEN_ELEVATION_TYPE = u32;
pub use self::_TOKEN_ELEVATION_TYPE as TOKEN_ELEVATION_TYPE;
pub type PTOKEN_ELEVATION_TYPE = *mut _TOKEN_ELEVATION_TYPE;
pub const _TOKEN_INFORMATION_CLASS_TokenUser: _TOKEN_INFORMATION_CLASS = 1;
pub const _TOKEN_INFORMATION_CLASS_TokenGroups: _TOKEN_INFORMATION_CLASS = 2;
pub const _TOKEN_INFORMATION_CLASS_TokenPrivileges: _TOKEN_INFORMATION_CLASS = 3;
pub const _TOKEN_INFORMATION_CLASS_TokenOwner: _TOKEN_INFORMATION_CLASS = 4;
pub const _TOKEN_INFORMATION_CLASS_TokenPrimaryGroup: _TOKEN_INFORMATION_CLASS = 5;
pub const _TOKEN_INFORMATION_CLASS_TokenDefaultDacl: _TOKEN_INFORMATION_CLASS = 6;
pub const _TOKEN_INFORMATION_CLASS_TokenSource: _TOKEN_INFORMATION_CLASS = 7;
pub const _TOKEN_INFORMATION_CLASS_TokenType: _TOKEN_INFORMATION_CLASS = 8;
pub const _TOKEN_INFORMATION_CLASS_TokenImpersonationLevel: _TOKEN_INFORMATION_CLASS = 9;
pub const _TOKEN_INFORMATION_CLASS_TokenStatistics: _TOKEN_INFORMATION_CLASS = 10;
pub const _TOKEN_INFORMATION_CLASS_TokenRestrictedSids: _TOKEN_INFORMATION_CLASS = 11;
pub const _TOKEN_INFORMATION_CLASS_TokenSessionId: _TOKEN_INFORMATION_CLASS = 12;
pub const _TOKEN_INFORMATION_CLASS_TokenGroupsAndPrivileges: _TOKEN_INFORMATION_CLASS = 13;
pub const _TOKEN_INFORMATION_CLASS_TokenSessionReference: _TOKEN_INFORMATION_CLASS = 14;
pub const _TOKEN_INFORMATION_CLASS_TokenSandBoxInert: _TOKEN_INFORMATION_CLASS = 15;
pub const _TOKEN_INFORMATION_CLASS_TokenAuditPolicy: _TOKEN_INFORMATION_CLASS = 16;
pub const _TOKEN_INFORMATION_CLASS_TokenOrigin: _TOKEN_INFORMATION_CLASS = 17;
pub const _TOKEN_INFORMATION_CLASS_TokenElevationType: _TOKEN_INFORMATION_CLASS = 18;
pub const _TOKEN_INFORMATION_CLASS_TokenLinkedToken: _TOKEN_INFORMATION_CLASS = 19;
pub const _TOKEN_INFORMATION_CLASS_TokenElevation: _TOKEN_INFORMATION_CLASS = 20;
pub const _TOKEN_INFORMATION_CLASS_TokenHasRestrictions: _TOKEN_INFORMATION_CLASS = 21;
pub const _TOKEN_INFORMATION_CLASS_TokenAccessInformation: _TOKEN_INFORMATION_CLASS = 22;
pub const _TOKEN_INFORMATION_CLASS_TokenVirtualizationAllowed: _TOKEN_INFORMATION_CLASS = 23;
pub const _TOKEN_INFORMATION_CLASS_TokenVirtualizationEnabled: _TOKEN_INFORMATION_CLASS = 24;
pub const _TOKEN_INFORMATION_CLASS_TokenIntegrityLevel: _TOKEN_INFORMATION_CLASS = 25;
pub const _TOKEN_INFORMATION_CLASS_TokenUIAccess: _TOKEN_INFORMATION_CLASS = 26;
pub const _TOKEN_INFORMATION_CLASS_TokenMandatoryPolicy: _TOKEN_INFORMATION_CLASS = 27;
pub const _TOKEN_INFORMATION_CLASS_TokenLogonSid: _TOKEN_INFORMATION_CLASS = 28;
pub const _TOKEN_INFORMATION_CLASS_TokenIsAppContainer: _TOKEN_INFORMATION_CLASS = 29;
pub const _TOKEN_INFORMATION_CLASS_TokenCapabilities: _TOKEN_INFORMATION_CLASS = 30;
pub const _TOKEN_INFORMATION_CLASS_TokenAppContainerSid: _TOKEN_INFORMATION_CLASS = 31;
pub const _TOKEN_INFORMATION_CLASS_TokenAppContainerNumber: _TOKEN_INFORMATION_CLASS = 32;
pub const _TOKEN_INFORMATION_CLASS_TokenUserClaimAttributes: _TOKEN_INFORMATION_CLASS = 33;
pub const _TOKEN_INFORMATION_CLASS_TokenDeviceClaimAttributes: _TOKEN_INFORMATION_CLASS = 34;
pub const _TOKEN_INFORMATION_CLASS_TokenRestrictedUserClaimAttributes: _TOKEN_INFORMATION_CLASS =
    35;
pub const _TOKEN_INFORMATION_CLASS_TokenRestrictedDeviceClaimAttributes: _TOKEN_INFORMATION_CLASS =
    36;
pub const _TOKEN_INFORMATION_CLASS_TokenDeviceGroups: _TOKEN_INFORMATION_CLASS = 37;
pub const _TOKEN_INFORMATION_CLASS_TokenRestrictedDeviceGroups: _TOKEN_INFORMATION_CLASS = 38;
pub const _TOKEN_INFORMATION_CLASS_TokenSecurityAttributes: _TOKEN_INFORMATION_CLASS = 39;
pub const _TOKEN_INFORMATION_CLASS_TokenIsRestricted: _TOKEN_INFORMATION_CLASS = 40;
pub const _TOKEN_INFORMATION_CLASS_MaxTokenInfoClass: _TOKEN_INFORMATION_CLASS = 41;
pub type _TOKEN_INFORMATION_CLASS = u32;
pub use self::_TOKEN_INFORMATION_CLASS as TOKEN_INFORMATION_CLASS;
pub type PTOKEN_INFORMATION_CLASS = *mut _TOKEN_INFORMATION_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_USER {
    pub User: SID_AND_ATTRIBUTES,
}
pub type TOKEN_USER = _TOKEN_USER;
pub type PTOKEN_USER = *mut _TOKEN_USER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_GROUPS {
    pub GroupCount: DWORD,
    pub Groups: [SID_AND_ATTRIBUTES; 1usize],
}
pub type TOKEN_GROUPS = _TOKEN_GROUPS;
pub type PTOKEN_GROUPS = *mut _TOKEN_GROUPS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_PRIVILEGES {
    pub PrivilegeCount: DWORD,
    pub Privileges: [LUID_AND_ATTRIBUTES; 1usize],
}
pub type TOKEN_PRIVILEGES = _TOKEN_PRIVILEGES;
pub type PTOKEN_PRIVILEGES = *mut _TOKEN_PRIVILEGES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_OWNER {
    pub Owner: PSID,
}
pub type TOKEN_OWNER = _TOKEN_OWNER;
pub type PTOKEN_OWNER = *mut _TOKEN_OWNER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_PRIMARY_GROUP {
    pub PrimaryGroup: PSID,
}
pub type TOKEN_PRIMARY_GROUP = _TOKEN_PRIMARY_GROUP;
pub type PTOKEN_PRIMARY_GROUP = *mut _TOKEN_PRIMARY_GROUP;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_DEFAULT_DACL {
    pub DefaultDacl: PACL,
}
pub type TOKEN_DEFAULT_DACL = _TOKEN_DEFAULT_DACL;
pub type PTOKEN_DEFAULT_DACL = *mut _TOKEN_DEFAULT_DACL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_USER_CLAIMS {
    pub UserClaims: PCLAIMS_BLOB,
}
pub type TOKEN_USER_CLAIMS = _TOKEN_USER_CLAIMS;
pub type PTOKEN_USER_CLAIMS = *mut _TOKEN_USER_CLAIMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_DEVICE_CLAIMS {
    pub DeviceClaims: PCLAIMS_BLOB,
}
pub type TOKEN_DEVICE_CLAIMS = _TOKEN_DEVICE_CLAIMS;
pub type PTOKEN_DEVICE_CLAIMS = *mut _TOKEN_DEVICE_CLAIMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_GROUPS_AND_PRIVILEGES {
    pub SidCount: DWORD,
    pub SidLength: DWORD,
    pub Sids: PSID_AND_ATTRIBUTES,
    pub RestrictedSidCount: DWORD,
    pub RestrictedSidLength: DWORD,
    pub RestrictedSids: PSID_AND_ATTRIBUTES,
    pub PrivilegeCount: DWORD,
    pub PrivilegeLength: DWORD,
    pub Privileges: PLUID_AND_ATTRIBUTES,
    pub AuthenticationId: LUID,
}
pub type TOKEN_GROUPS_AND_PRIVILEGES = _TOKEN_GROUPS_AND_PRIVILEGES;
pub type PTOKEN_GROUPS_AND_PRIVILEGES = *mut _TOKEN_GROUPS_AND_PRIVILEGES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_LINKED_TOKEN {
    pub LinkedToken: HANDLE,
}
pub type TOKEN_LINKED_TOKEN = _TOKEN_LINKED_TOKEN;
pub type PTOKEN_LINKED_TOKEN = *mut _TOKEN_LINKED_TOKEN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_ELEVATION {
    pub TokenIsElevated: DWORD,
}
pub type TOKEN_ELEVATION = _TOKEN_ELEVATION;
pub type PTOKEN_ELEVATION = *mut _TOKEN_ELEVATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_MANDATORY_LABEL {
    pub Label: SID_AND_ATTRIBUTES,
}
pub type TOKEN_MANDATORY_LABEL = _TOKEN_MANDATORY_LABEL;
pub type PTOKEN_MANDATORY_LABEL = *mut _TOKEN_MANDATORY_LABEL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_MANDATORY_POLICY {
    pub Policy: DWORD,
}
pub type TOKEN_MANDATORY_POLICY = _TOKEN_MANDATORY_POLICY;
pub type PTOKEN_MANDATORY_POLICY = *mut _TOKEN_MANDATORY_POLICY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_ACCESS_INFORMATION {
    pub SidHash: PSID_AND_ATTRIBUTES_HASH,
    pub RestrictedSidHash: PSID_AND_ATTRIBUTES_HASH,
    pub Privileges: PTOKEN_PRIVILEGES,
    pub AuthenticationId: LUID,
    pub TokenType: TOKEN_TYPE,
    pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
    pub MandatoryPolicy: TOKEN_MANDATORY_POLICY,
    pub Flags: DWORD,
    pub AppContainerNumber: DWORD,
    pub PackageSid: PSID,
    pub CapabilitiesHash: PSID_AND_ATTRIBUTES_HASH,
}
pub type TOKEN_ACCESS_INFORMATION = _TOKEN_ACCESS_INFORMATION;
pub type PTOKEN_ACCESS_INFORMATION = *mut _TOKEN_ACCESS_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_AUDIT_POLICY {
    pub PerUserPolicy: [UCHAR; 29usize],
}
pub type TOKEN_AUDIT_POLICY = _TOKEN_AUDIT_POLICY;
pub type PTOKEN_AUDIT_POLICY = *mut _TOKEN_AUDIT_POLICY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_SOURCE {
    pub SourceName: [CHAR; 8usize],
    pub SourceIdentifier: LUID,
}
pub type TOKEN_SOURCE = _TOKEN_SOURCE;
pub type PTOKEN_SOURCE = *mut _TOKEN_SOURCE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TOKEN_STATISTICS {
    pub TokenId: LUID,
    pub AuthenticationId: LUID,
    pub ExpirationTime: LARGE_INTEGER,
    pub TokenType: TOKEN_TYPE,
    pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
    pub DynamicCharged: DWORD,
    pub DynamicAvailable: DWORD,
    pub GroupCount: DWORD,
    pub PrivilegeCount: DWORD,
    pub ModifiedId: LUID,
}
pub type TOKEN_STATISTICS = _TOKEN_STATISTICS;
pub type PTOKEN_STATISTICS = *mut _TOKEN_STATISTICS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_CONTROL {
    pub TokenId: LUID,
    pub AuthenticationId: LUID,
    pub ModifiedId: LUID,
    pub TokenSource: TOKEN_SOURCE,
}
pub type TOKEN_CONTROL = _TOKEN_CONTROL;
pub type PTOKEN_CONTROL = *mut _TOKEN_CONTROL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_ORIGIN {
    pub OriginatingLogonSession: LUID,
}
pub type TOKEN_ORIGIN = _TOKEN_ORIGIN;
pub type PTOKEN_ORIGIN = *mut _TOKEN_ORIGIN;
pub const _MANDATORY_LEVEL_MandatoryLevelUntrusted: _MANDATORY_LEVEL = 0;
pub const _MANDATORY_LEVEL_MandatoryLevelLow: _MANDATORY_LEVEL = 1;
pub const _MANDATORY_LEVEL_MandatoryLevelMedium: _MANDATORY_LEVEL = 2;
pub const _MANDATORY_LEVEL_MandatoryLevelHigh: _MANDATORY_LEVEL = 3;
pub const _MANDATORY_LEVEL_MandatoryLevelSystem: _MANDATORY_LEVEL = 4;
pub const _MANDATORY_LEVEL_MandatoryLevelSecureProcess: _MANDATORY_LEVEL = 5;
pub const _MANDATORY_LEVEL_MandatoryLevelCount: _MANDATORY_LEVEL = 6;
pub type _MANDATORY_LEVEL = u32;
pub use self::_MANDATORY_LEVEL as MANDATORY_LEVEL;
pub type PMANDATORY_LEVEL = *mut _MANDATORY_LEVEL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_APPCONTAINER_INFORMATION {
    pub TokenAppContainer: PSID,
}
pub type TOKEN_APPCONTAINER_INFORMATION = _TOKEN_APPCONTAINER_INFORMATION;
pub type PTOKEN_APPCONTAINER_INFORMATION = *mut _TOKEN_APPCONTAINER_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE {
    pub Version: DWORD64,
    pub Name: PWSTR,
}
pub type CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE;
pub type PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = *mut _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE {
    pub pValue: PVOID,
    pub ValueLength: DWORD,
}
pub type CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE;
pub type PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE =
    *mut _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CLAIM_SECURITY_ATTRIBUTE_V1 {
    pub Name: PWSTR,
    pub ValueType: WORD,
    pub Reserved: WORD,
    pub Flags: DWORD,
    pub ValueCount: DWORD,
    pub Values: _CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1 {
    pub pInt64: PLONG64,
    pub pUint64: PDWORD64,
    pub ppString: *mut PWSTR,
    pub pFqbn: PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE,
    pub pOctetString: PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE,
    _bindgen_union_align: u64,
}
pub type CLAIM_SECURITY_ATTRIBUTE_V1 = _CLAIM_SECURITY_ATTRIBUTE_V1;
pub type PCLAIM_SECURITY_ATTRIBUTE_V1 = *mut _CLAIM_SECURITY_ATTRIBUTE_V1;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 {
    pub Name: DWORD,
    pub ValueType: WORD,
    pub Reserved: WORD,
    pub Flags: DWORD,
    pub ValueCount: DWORD,
    pub Values: _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1 {
    pub pInt64: [DWORD; 1usize],
    pub pUint64: [DWORD; 1usize],
    pub ppString: [DWORD; 1usize],
    pub pFqbn: [DWORD; 1usize],
    pub pOctetString: [DWORD; 1usize],
    _bindgen_union_align: u32,
}
pub type CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1;
pub type PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = *mut _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CLAIM_SECURITY_ATTRIBUTES_INFORMATION {
    pub Version: WORD,
    pub Reserved: WORD,
    pub AttributeCount: DWORD,
    pub Attribute: _CLAIM_SECURITY_ATTRIBUTES_INFORMATION__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CLAIM_SECURITY_ATTRIBUTES_INFORMATION__bindgen_ty_1 {
    pub pAttributeV1: PCLAIM_SECURITY_ATTRIBUTE_V1,
    _bindgen_union_align: u64,
}
pub type CLAIM_SECURITY_ATTRIBUTES_INFORMATION = _CLAIM_SECURITY_ATTRIBUTES_INFORMATION;
pub type PCLAIM_SECURITY_ATTRIBUTES_INFORMATION = *mut _CLAIM_SECURITY_ATTRIBUTES_INFORMATION;
pub type SECURITY_CONTEXT_TRACKING_MODE = BOOLEAN;
pub type PSECURITY_CONTEXT_TRACKING_MODE = *mut BOOLEAN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SECURITY_QUALITY_OF_SERVICE {
    pub Length: DWORD,
    pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
    pub ContextTrackingMode: SECURITY_CONTEXT_TRACKING_MODE,
    pub EffectiveOnly: BOOLEAN,
}
pub type SECURITY_QUALITY_OF_SERVICE = _SECURITY_QUALITY_OF_SERVICE;
pub type PSECURITY_QUALITY_OF_SERVICE = *mut _SECURITY_QUALITY_OF_SERVICE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SE_IMPERSONATION_STATE {
    pub Token: PACCESS_TOKEN,
    pub CopyOnOpen: BOOLEAN,
    pub EffectiveOnly: BOOLEAN,
    pub Level: SECURITY_IMPERSONATION_LEVEL,
}
pub type SE_IMPERSONATION_STATE = _SE_IMPERSONATION_STATE;
pub type PSE_IMPERSONATION_STATE = *mut _SE_IMPERSONATION_STATE;
pub type SECURITY_INFORMATION = DWORD;
pub type PSECURITY_INFORMATION = *mut DWORD;
pub const _SE_LEARNING_MODE_DATA_TYPE_SeLearningModeInvalidType: _SE_LEARNING_MODE_DATA_TYPE = 0;
pub const _SE_LEARNING_MODE_DATA_TYPE_SeLearningModeSettings: _SE_LEARNING_MODE_DATA_TYPE = 1;
pub const _SE_LEARNING_MODE_DATA_TYPE_SeLearningModeMax: _SE_LEARNING_MODE_DATA_TYPE = 2;
pub type _SE_LEARNING_MODE_DATA_TYPE = u32;
pub use self::_SE_LEARNING_MODE_DATA_TYPE as SE_LEARNING_MODE_DATA_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SECURITY_CAPABILITIES {
    pub AppContainerSid: PSID,
    pub Capabilities: PSID_AND_ATTRIBUTES,
    pub CapabilityCount: DWORD,
    pub Reserved: DWORD,
}
pub type SECURITY_CAPABILITIES = _SECURITY_CAPABILITIES;
pub type PSECURITY_CAPABILITIES = *mut _SECURITY_CAPABILITIES;
pub type LPSECURITY_CAPABILITIES = *mut _SECURITY_CAPABILITIES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOB_SET_ARRAY {
    pub JobHandle: HANDLE,
    pub MemberLevel: DWORD,
    pub Flags: DWORD,
}
pub type JOB_SET_ARRAY = _JOB_SET_ARRAY;
pub type PJOB_SET_ARRAY = *mut _JOB_SET_ARRAY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _EXCEPTION_REGISTRATION_RECORD {
    pub __bindgen_anon_1: _EXCEPTION_REGISTRATION_RECORD__bindgen_ty_1,
    pub __bindgen_anon_2: _EXCEPTION_REGISTRATION_RECORD__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _EXCEPTION_REGISTRATION_RECORD__bindgen_ty_1 {
    pub Next: *mut _EXCEPTION_REGISTRATION_RECORD,
    pub prev: *mut _EXCEPTION_REGISTRATION_RECORD,
    _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _EXCEPTION_REGISTRATION_RECORD__bindgen_ty_2 {
    pub Handler: PEXCEPTION_ROUTINE,
    pub handler: PEXCEPTION_ROUTINE,
    _bindgen_union_align: u64,
}
pub type EXCEPTION_REGISTRATION_RECORD = _EXCEPTION_REGISTRATION_RECORD;
pub type PEXCEPTION_REGISTRATION_RECORD = *mut EXCEPTION_REGISTRATION_RECORD;
pub type EXCEPTION_REGISTRATION = EXCEPTION_REGISTRATION_RECORD;
pub type PEXCEPTION_REGISTRATION = PEXCEPTION_REGISTRATION_RECORD;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _NT_TIB {
    pub ExceptionList: *mut _EXCEPTION_REGISTRATION_RECORD,
    pub StackBase: PVOID,
    pub StackLimit: PVOID,
    pub SubSystemTib: PVOID,
    pub __bindgen_anon_1: _NT_TIB__bindgen_ty_1,
    pub ArbitraryUserPointer: PVOID,
    pub Self_: *mut _NT_TIB,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _NT_TIB__bindgen_ty_1 {
    pub FiberData: PVOID,
    pub Version: DWORD,
    _bindgen_union_align: u64,
}
pub type NT_TIB = _NT_TIB;
pub type PNT_TIB = *mut NT_TIB;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _NT_TIB32 {
    pub ExceptionList: DWORD,
    pub StackBase: DWORD,
    pub StackLimit: DWORD,
    pub SubSystemTib: DWORD,
    pub __bindgen_anon_1: _NT_TIB32__bindgen_ty_1,
    pub ArbitraryUserPointer: DWORD,
    pub Self_: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _NT_TIB32__bindgen_ty_1 {
    pub FiberData: DWORD,
    pub Version: DWORD,
    _bindgen_union_align: u32,
}
pub type NT_TIB32 = _NT_TIB32;
pub type PNT_TIB32 = *mut _NT_TIB32;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _NT_TIB64 {
    pub ExceptionList: DWORD64,
    pub StackBase: DWORD64,
    pub StackLimit: DWORD64,
    pub SubSystemTib: DWORD64,
    pub __bindgen_anon_1: _NT_TIB64__bindgen_ty_1,
    pub ArbitraryUserPointer: DWORD64,
    pub Self_: DWORD64,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _NT_TIB64__bindgen_ty_1 {
    pub FiberData: DWORD64,
    pub Version: DWORD,
    _bindgen_union_align: u64,
}
pub type NT_TIB64 = _NT_TIB64;
pub type PNT_TIB64 = *mut _NT_TIB64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _UMS_CREATE_THREAD_ATTRIBUTES {
    pub UmsVersion: DWORD,
    pub UmsContext: PVOID,
    pub UmsCompletionList: PVOID,
}
pub type UMS_CREATE_THREAD_ATTRIBUTES = _UMS_CREATE_THREAD_ATTRIBUTES;
pub type PUMS_CREATE_THREAD_ATTRIBUTES = *mut _UMS_CREATE_THREAD_ATTRIBUTES;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _QUOTA_LIMITS {
    pub PagedPoolLimit: SIZE_T,
    pub NonPagedPoolLimit: SIZE_T,
    pub MinimumWorkingSetSize: SIZE_T,
    pub MaximumWorkingSetSize: SIZE_T,
    pub PagefileLimit: SIZE_T,
    pub TimeLimit: LARGE_INTEGER,
}
pub type QUOTA_LIMITS = _QUOTA_LIMITS;
pub type PQUOTA_LIMITS = *mut _QUOTA_LIMITS;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RATE_QUOTA_LIMIT {
    pub RateData: DWORD,
    pub __bindgen_anon_1: _RATE_QUOTA_LIMIT__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _RATE_QUOTA_LIMIT__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _RATE_QUOTA_LIMIT__bindgen_ty_1 {
    #[inline]
    pub fn RatePercent(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 7u8) as u32) }
    }
    #[inline]
    pub fn set_RatePercent(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 7u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved0(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 25u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved0(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(7usize, 25u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        RatePercent: DWORD,
        Reserved0: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 7u8, {
            let RatePercent: u32 = unsafe { ::std::mem::transmute(RatePercent) };
            RatePercent as u64
        });
        __bindgen_bitfield_unit.set(7usize, 25u8, {
            let Reserved0: u32 = unsafe { ::std::mem::transmute(Reserved0) };
            Reserved0 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type RATE_QUOTA_LIMIT = _RATE_QUOTA_LIMIT;
pub type PRATE_QUOTA_LIMIT = *mut _RATE_QUOTA_LIMIT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _QUOTA_LIMITS_EX {
    pub PagedPoolLimit: SIZE_T,
    pub NonPagedPoolLimit: SIZE_T,
    pub MinimumWorkingSetSize: SIZE_T,
    pub MaximumWorkingSetSize: SIZE_T,
    pub PagefileLimit: SIZE_T,
    pub TimeLimit: LARGE_INTEGER,
    pub WorkingSetLimit: SIZE_T,
    pub Reserved2: SIZE_T,
    pub Reserved3: SIZE_T,
    pub Reserved4: SIZE_T,
    pub Flags: DWORD,
    pub CpuRateLimit: RATE_QUOTA_LIMIT,
}
pub type QUOTA_LIMITS_EX = _QUOTA_LIMITS_EX;
pub type PQUOTA_LIMITS_EX = *mut _QUOTA_LIMITS_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_COUNTERS {
    pub ReadOperationCount: ULONGLONG,
    pub WriteOperationCount: ULONGLONG,
    pub OtherOperationCount: ULONGLONG,
    pub ReadTransferCount: ULONGLONG,
    pub WriteTransferCount: ULONGLONG,
    pub OtherTransferCount: ULONGLONG,
}
pub type IO_COUNTERS = _IO_COUNTERS;
pub type PIO_COUNTERS = *mut IO_COUNTERS;
pub const _HARDWARE_COUNTER_TYPE_PMCCounter: _HARDWARE_COUNTER_TYPE = 0;
pub const _HARDWARE_COUNTER_TYPE_MaxHardwareCounterType: _HARDWARE_COUNTER_TYPE = 1;
pub type _HARDWARE_COUNTER_TYPE = u32;
pub use self::_HARDWARE_COUNTER_TYPE as HARDWARE_COUNTER_TYPE;
pub type PHARDWARE_COUNTER_TYPE = *mut _HARDWARE_COUNTER_TYPE;
pub const _PROCESS_MITIGATION_POLICY_ProcessDEPPolicy: _PROCESS_MITIGATION_POLICY = 0;
pub const _PROCESS_MITIGATION_POLICY_ProcessASLRPolicy: _PROCESS_MITIGATION_POLICY = 1;
pub const _PROCESS_MITIGATION_POLICY_ProcessDynamicCodePolicy: _PROCESS_MITIGATION_POLICY = 2;
pub const _PROCESS_MITIGATION_POLICY_ProcessStrictHandleCheckPolicy: _PROCESS_MITIGATION_POLICY = 3;
pub const _PROCESS_MITIGATION_POLICY_ProcessSystemCallDisablePolicy: _PROCESS_MITIGATION_POLICY = 4;
pub const _PROCESS_MITIGATION_POLICY_ProcessMitigationOptionsMask: _PROCESS_MITIGATION_POLICY = 5;
pub const _PROCESS_MITIGATION_POLICY_ProcessExtensionPointDisablePolicy:
    _PROCESS_MITIGATION_POLICY = 6;
pub const _PROCESS_MITIGATION_POLICY_ProcessControlFlowGuardPolicy: _PROCESS_MITIGATION_POLICY = 7;
pub const _PROCESS_MITIGATION_POLICY_ProcessSignaturePolicy: _PROCESS_MITIGATION_POLICY = 8;
pub const _PROCESS_MITIGATION_POLICY_ProcessFontDisablePolicy: _PROCESS_MITIGATION_POLICY = 9;
pub const _PROCESS_MITIGATION_POLICY_ProcessImageLoadPolicy: _PROCESS_MITIGATION_POLICY = 10;
pub const _PROCESS_MITIGATION_POLICY_MaxProcessMitigationPolicy: _PROCESS_MITIGATION_POLICY = 11;
pub type _PROCESS_MITIGATION_POLICY = u32;
pub use self::_PROCESS_MITIGATION_POLICY as PROCESS_MITIGATION_POLICY;
pub type PPROCESS_MITIGATION_POLICY = *mut _PROCESS_MITIGATION_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_ASLR_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1: _PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn EnableBottomUpRandomization(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableBottomUpRandomization(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn EnableForceRelocateImages(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableForceRelocateImages(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn EnableHighEntropy(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableHighEntropy(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn DisallowStrippedImages(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_DisallowStrippedImages(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 28u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        EnableBottomUpRandomization: DWORD,
        EnableForceRelocateImages: DWORD,
        EnableHighEntropy: DWORD,
        DisallowStrippedImages: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let EnableBottomUpRandomization: u32 =
                unsafe { ::std::mem::transmute(EnableBottomUpRandomization) };
            EnableBottomUpRandomization as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let EnableForceRelocateImages: u32 =
                unsafe { ::std::mem::transmute(EnableForceRelocateImages) };
            EnableForceRelocateImages as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let EnableHighEntropy: u32 = unsafe { ::std::mem::transmute(EnableHighEntropy) };
            EnableHighEntropy as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let DisallowStrippedImages: u32 =
                unsafe { ::std::mem::transmute(DisallowStrippedImages) };
            DisallowStrippedImages as u64
        });
        __bindgen_bitfield_unit.set(4usize, 28u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_ASLR_POLICY = _PROCESS_MITIGATION_ASLR_POLICY;
pub type PPROCESS_MITIGATION_ASLR_POLICY = *mut _PROCESS_MITIGATION_ASLR_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_DEP_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1,
    pub Permanent: BOOLEAN,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1: _PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn Enable(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Enable(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn DisableAtlThunkEmulation(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_DisableAtlThunkEmulation(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 30u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Enable: DWORD,
        DisableAtlThunkEmulation: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let Enable: u32 = unsafe { ::std::mem::transmute(Enable) };
            Enable as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let DisableAtlThunkEmulation: u32 =
                unsafe { ::std::mem::transmute(DisableAtlThunkEmulation) };
            DisableAtlThunkEmulation as u64
        });
        __bindgen_bitfield_unit.set(2usize, 30u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_DEP_POLICY = _PROCESS_MITIGATION_DEP_POLICY;
pub type PPROCESS_MITIGATION_DEP_POLICY = *mut _PROCESS_MITIGATION_DEP_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1:
        _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn RaiseExceptionOnInvalidHandleReference(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_RaiseExceptionOnInvalidHandleReference(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn HandleExceptionsPermanentlyEnabled(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_HandleExceptionsPermanentlyEnabled(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 30u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        RaiseExceptionOnInvalidHandleReference: DWORD,
        HandleExceptionsPermanentlyEnabled: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let RaiseExceptionOnInvalidHandleReference: u32 =
                unsafe { ::std::mem::transmute(RaiseExceptionOnInvalidHandleReference) };
            RaiseExceptionOnInvalidHandleReference as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let HandleExceptionsPermanentlyEnabled: u32 =
                unsafe { ::std::mem::transmute(HandleExceptionsPermanentlyEnabled) };
            HandleExceptionsPermanentlyEnabled as u64
        });
        __bindgen_bitfield_unit.set(2usize, 30u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY =
    _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY;
pub type PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY =
    *mut _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1:
        _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn DisallowWin32kSystemCalls(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_DisallowWin32kSystemCalls(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        DisallowWin32kSystemCalls: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let DisallowWin32kSystemCalls: u32 =
                unsafe { ::std::mem::transmute(DisallowWin32kSystemCalls) };
            DisallowWin32kSystemCalls as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY =
    _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY;
pub type PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY =
    *mut _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1:
        _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn DisableExtensionPoints(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_DisableExtensionPoints(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        DisableExtensionPoints: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let DisableExtensionPoints: u32 =
                unsafe { ::std::mem::transmute(DisableExtensionPoints) };
            DisableExtensionPoints as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY =
    _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY;
pub type PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY =
    *mut _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1: _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn EnableControlFlowGuard(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableControlFlowGuard(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn EnableExportSuppression(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableExportSuppression(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn StrictMode(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_StrictMode(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 29u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        EnableControlFlowGuard: DWORD,
        EnableExportSuppression: DWORD,
        StrictMode: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let EnableControlFlowGuard: u32 =
                unsafe { ::std::mem::transmute(EnableControlFlowGuard) };
            EnableControlFlowGuard as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let EnableExportSuppression: u32 =
                unsafe { ::std::mem::transmute(EnableExportSuppression) };
            EnableExportSuppression as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let StrictMode: u32 = unsafe { ::std::mem::transmute(StrictMode) };
            StrictMode as u64
        });
        __bindgen_bitfield_unit.set(3usize, 29u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY =
    _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY;
pub type PPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY =
    *mut _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1: _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn MicrosoftSignedOnly(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_MicrosoftSignedOnly(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn StoreSignedOnly(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_StoreSignedOnly(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn MitigationOptIn(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_MitigationOptIn(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 29u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        MicrosoftSignedOnly: DWORD,
        StoreSignedOnly: DWORD,
        MitigationOptIn: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let MicrosoftSignedOnly: u32 = unsafe { ::std::mem::transmute(MicrosoftSignedOnly) };
            MicrosoftSignedOnly as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let StoreSignedOnly: u32 = unsafe { ::std::mem::transmute(StoreSignedOnly) };
            StoreSignedOnly as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let MitigationOptIn: u32 = unsafe { ::std::mem::transmute(MitigationOptIn) };
            MitigationOptIn as u64
        });
        __bindgen_bitfield_unit.set(3usize, 29u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY;
pub type PPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY =
    *mut _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1: _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u32; 2usize],
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u32>,
}
impl _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn ProhibitDynamicCode(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_ProhibitDynamicCode(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AllowThreadOptOut(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AllowThreadOptOut(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AllowRemoteDowngrade(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AllowRemoteDowngrade(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 30u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(32usize, 30u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        ProhibitDynamicCode: DWORD,
        AllowThreadOptOut: DWORD,
        AllowRemoteDowngrade: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 8usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let ProhibitDynamicCode: u32 = unsafe { ::std::mem::transmute(ProhibitDynamicCode) };
            ProhibitDynamicCode as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let AllowThreadOptOut: u32 = unsafe { ::std::mem::transmute(AllowThreadOptOut) };
            AllowThreadOptOut as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let AllowRemoteDowngrade: u32 = unsafe { ::std::mem::transmute(AllowRemoteDowngrade) };
            AllowRemoteDowngrade as u64
        });
        __bindgen_bitfield_unit.set(32usize, 30u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY;
pub type PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY = *mut _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_FONT_DISABLE_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1: _PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn DisableNonSystemFonts(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_DisableNonSystemFonts(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditNonSystemFontLoading(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditNonSystemFontLoading(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 30u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        DisableNonSystemFonts: DWORD,
        AuditNonSystemFontLoading: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let DisableNonSystemFonts: u32 =
                unsafe { ::std::mem::transmute(DisableNonSystemFonts) };
            DisableNonSystemFonts as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let AuditNonSystemFontLoading: u32 =
                unsafe { ::std::mem::transmute(AuditNonSystemFontLoading) };
            AuditNonSystemFontLoading as u64
        });
        __bindgen_bitfield_unit.set(2usize, 30u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_FONT_DISABLE_POLICY = _PROCESS_MITIGATION_FONT_DISABLE_POLICY;
pub type PPROCESS_MITIGATION_FONT_DISABLE_POLICY = *mut _PROCESS_MITIGATION_FONT_DISABLE_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_IMAGE_LOAD_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1: _PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn NoRemoteImages(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_NoRemoteImages(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn NoLowMandatoryLabelImages(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_NoLowMandatoryLabelImages(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn PreferSystem32Images(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_PreferSystem32Images(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 29u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        NoRemoteImages: DWORD,
        NoLowMandatoryLabelImages: DWORD,
        PreferSystem32Images: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let NoRemoteImages: u32 = unsafe { ::std::mem::transmute(NoRemoteImages) };
            NoRemoteImages as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let NoLowMandatoryLabelImages: u32 =
                unsafe { ::std::mem::transmute(NoLowMandatoryLabelImages) };
            NoLowMandatoryLabelImages as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let PreferSystem32Images: u32 = unsafe { ::std::mem::transmute(PreferSystem32Images) };
            PreferSystem32Images as u64
        });
        __bindgen_bitfield_unit.set(3usize, 29u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESS_MITIGATION_IMAGE_LOAD_POLICY = _PROCESS_MITIGATION_IMAGE_LOAD_POLICY;
pub type PPROCESS_MITIGATION_IMAGE_LOAD_POLICY = *mut _PROCESS_MITIGATION_IMAGE_LOAD_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
    pub TotalUserTime: LARGE_INTEGER,
    pub TotalKernelTime: LARGE_INTEGER,
    pub ThisPeriodTotalUserTime: LARGE_INTEGER,
    pub ThisPeriodTotalKernelTime: LARGE_INTEGER,
    pub TotalPageFaultCount: DWORD,
    pub TotalProcesses: DWORD,
    pub ActiveProcesses: DWORD,
    pub TotalTerminatedProcesses: DWORD,
}
pub type JOBOBJECT_BASIC_ACCOUNTING_INFORMATION = _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
pub type PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION = *mut _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _JOBOBJECT_BASIC_LIMIT_INFORMATION {
    pub PerProcessUserTimeLimit: LARGE_INTEGER,
    pub PerJobUserTimeLimit: LARGE_INTEGER,
    pub LimitFlags: DWORD,
    pub MinimumWorkingSetSize: SIZE_T,
    pub MaximumWorkingSetSize: SIZE_T,
    pub ActiveProcessLimit: DWORD,
    pub Affinity: ULONG_PTR,
    pub PriorityClass: DWORD,
    pub SchedulingClass: DWORD,
}
pub type JOBOBJECT_BASIC_LIMIT_INFORMATION = _JOBOBJECT_BASIC_LIMIT_INFORMATION;
pub type PJOBOBJECT_BASIC_LIMIT_INFORMATION = *mut _JOBOBJECT_BASIC_LIMIT_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
    pub BasicLimitInformation: JOBOBJECT_BASIC_LIMIT_INFORMATION,
    pub IoInfo: IO_COUNTERS,
    pub ProcessMemoryLimit: SIZE_T,
    pub JobMemoryLimit: SIZE_T,
    pub PeakProcessMemoryUsed: SIZE_T,
    pub PeakJobMemoryUsed: SIZE_T,
}
pub type JOBOBJECT_EXTENDED_LIMIT_INFORMATION = _JOBOBJECT_EXTENDED_LIMIT_INFORMATION;
pub type PJOBOBJECT_EXTENDED_LIMIT_INFORMATION = *mut _JOBOBJECT_EXTENDED_LIMIT_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOBOBJECT_BASIC_PROCESS_ID_LIST {
    pub NumberOfAssignedProcesses: DWORD,
    pub NumberOfProcessIdsInList: DWORD,
    pub ProcessIdList: [ULONG_PTR; 1usize],
}
pub type JOBOBJECT_BASIC_PROCESS_ID_LIST = _JOBOBJECT_BASIC_PROCESS_ID_LIST;
pub type PJOBOBJECT_BASIC_PROCESS_ID_LIST = *mut _JOBOBJECT_BASIC_PROCESS_ID_LIST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOBOBJECT_BASIC_UI_RESTRICTIONS {
    pub UIRestrictionsClass: DWORD,
}
pub type JOBOBJECT_BASIC_UI_RESTRICTIONS = _JOBOBJECT_BASIC_UI_RESTRICTIONS;
pub type PJOBOBJECT_BASIC_UI_RESTRICTIONS = *mut _JOBOBJECT_BASIC_UI_RESTRICTIONS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION {
    pub SecurityLimitFlags: DWORD,
    pub JobToken: HANDLE,
    pub SidsToDisable: PTOKEN_GROUPS,
    pub PrivilegesToDelete: PTOKEN_PRIVILEGES,
    pub RestrictedSids: PTOKEN_GROUPS,
}
pub type JOBOBJECT_SECURITY_LIMIT_INFORMATION = _JOBOBJECT_SECURITY_LIMIT_INFORMATION;
pub type PJOBOBJECT_SECURITY_LIMIT_INFORMATION = *mut _JOBOBJECT_SECURITY_LIMIT_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
    pub EndOfJobTimeAction: DWORD,
}
pub type JOBOBJECT_END_OF_JOB_TIME_INFORMATION = _JOBOBJECT_END_OF_JOB_TIME_INFORMATION;
pub type PJOBOBJECT_END_OF_JOB_TIME_INFORMATION = *mut _JOBOBJECT_END_OF_JOB_TIME_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
    pub CompletionKey: PVOID,
    pub CompletionPort: HANDLE,
}
pub type JOBOBJECT_ASSOCIATE_COMPLETION_PORT = _JOBOBJECT_ASSOCIATE_COMPLETION_PORT;
pub type PJOBOBJECT_ASSOCIATE_COMPLETION_PORT = *mut _JOBOBJECT_ASSOCIATE_COMPLETION_PORT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
    pub BasicInfo: JOBOBJECT_BASIC_ACCOUNTING_INFORMATION,
    pub IoInfo: IO_COUNTERS,
}
pub type JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION =
    _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION;
pub type PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION =
    *mut _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOBOBJECT_JOBSET_INFORMATION {
    pub MemberLevel: DWORD,
}
pub type JOBOBJECT_JOBSET_INFORMATION = _JOBOBJECT_JOBSET_INFORMATION;
pub type PJOBOBJECT_JOBSET_INFORMATION = *mut _JOBOBJECT_JOBSET_INFORMATION;
pub const _JOBOBJECT_RATE_CONTROL_TOLERANCE_ToleranceLow: _JOBOBJECT_RATE_CONTROL_TOLERANCE = 1;
pub const _JOBOBJECT_RATE_CONTROL_TOLERANCE_ToleranceMedium: _JOBOBJECT_RATE_CONTROL_TOLERANCE = 2;
pub const _JOBOBJECT_RATE_CONTROL_TOLERANCE_ToleranceHigh: _JOBOBJECT_RATE_CONTROL_TOLERANCE = 3;
pub type _JOBOBJECT_RATE_CONTROL_TOLERANCE = u32;
pub use self::_JOBOBJECT_RATE_CONTROL_TOLERANCE as JOBOBJECT_RATE_CONTROL_TOLERANCE;
pub const _JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL_ToleranceIntervalShort:
    _JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = 1;
pub const _JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL_ToleranceIntervalMedium:
    _JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = 2;
pub const _JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL_ToleranceIntervalLong:
    _JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = 3;
pub type _JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = u32;
pub use self::_JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL as JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
    pub IoReadBytesLimit: DWORD64,
    pub IoWriteBytesLimit: DWORD64,
    pub PerJobUserTimeLimit: LARGE_INTEGER,
    pub JobMemoryLimit: DWORD64,
    pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub RateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
    pub LimitFlags: DWORD,
}
pub type JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION;
pub type PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = *mut _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
    pub LimitFlags: DWORD,
    pub ViolationLimitFlags: DWORD,
    pub IoReadBytes: DWORD64,
    pub IoReadBytesLimit: DWORD64,
    pub IoWriteBytes: DWORD64,
    pub IoWriteBytesLimit: DWORD64,
    pub PerJobUserTime: LARGE_INTEGER,
    pub PerJobUserTimeLimit: LARGE_INTEGER,
    pub JobMemory: DWORD64,
    pub JobMemoryLimit: DWORD64,
    pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub RateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
}
pub type JOBOBJECT_LIMIT_VIOLATION_INFORMATION = _JOBOBJECT_LIMIT_VIOLATION_INFORMATION;
pub type PJOBOBJECT_LIMIT_VIOLATION_INFORMATION = *mut _JOBOBJECT_LIMIT_VIOLATION_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
    pub ControlFlags: DWORD,
    pub __bindgen_anon_1: _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1 {
    pub CpuRate: DWORD,
    pub Weight: DWORD,
    _bindgen_union_align: u32,
}
pub type JOBOBJECT_CPU_RATE_CONTROL_INFORMATION = _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
pub type PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION = *mut _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
pub const _JOBOBJECTINFOCLASS_JobObjectBasicAccountingInformation: _JOBOBJECTINFOCLASS = 1;
pub const _JOBOBJECTINFOCLASS_JobObjectBasicLimitInformation: _JOBOBJECTINFOCLASS = 2;
pub const _JOBOBJECTINFOCLASS_JobObjectBasicProcessIdList: _JOBOBJECTINFOCLASS = 3;
pub const _JOBOBJECTINFOCLASS_JobObjectBasicUIRestrictions: _JOBOBJECTINFOCLASS = 4;
pub const _JOBOBJECTINFOCLASS_JobObjectSecurityLimitInformation: _JOBOBJECTINFOCLASS = 5;
pub const _JOBOBJECTINFOCLASS_JobObjectEndOfJobTimeInformation: _JOBOBJECTINFOCLASS = 6;
pub const _JOBOBJECTINFOCLASS_JobObjectAssociateCompletionPortInformation: _JOBOBJECTINFOCLASS = 7;
pub const _JOBOBJECTINFOCLASS_JobObjectBasicAndIoAccountingInformation: _JOBOBJECTINFOCLASS = 8;
pub const _JOBOBJECTINFOCLASS_JobObjectExtendedLimitInformation: _JOBOBJECTINFOCLASS = 9;
pub const _JOBOBJECTINFOCLASS_JobObjectJobSetInformation: _JOBOBJECTINFOCLASS = 10;
pub const _JOBOBJECTINFOCLASS_JobObjectGroupInformation: _JOBOBJECTINFOCLASS = 11;
pub const _JOBOBJECTINFOCLASS_JobObjectNotificationLimitInformation: _JOBOBJECTINFOCLASS = 12;
pub const _JOBOBJECTINFOCLASS_JobObjectLimitViolationInformation: _JOBOBJECTINFOCLASS = 13;
pub const _JOBOBJECTINFOCLASS_JobObjectGroupInformationEx: _JOBOBJECTINFOCLASS = 14;
pub const _JOBOBJECTINFOCLASS_JobObjectCpuRateControlInformation: _JOBOBJECTINFOCLASS = 15;
pub const _JOBOBJECTINFOCLASS_JobObjectCompletionFilter: _JOBOBJECTINFOCLASS = 16;
pub const _JOBOBJECTINFOCLASS_JobObjectCompletionCounter: _JOBOBJECTINFOCLASS = 17;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved1Information: _JOBOBJECTINFOCLASS = 18;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved2Information: _JOBOBJECTINFOCLASS = 19;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved3Information: _JOBOBJECTINFOCLASS = 20;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved4Information: _JOBOBJECTINFOCLASS = 21;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved5Information: _JOBOBJECTINFOCLASS = 22;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved6Information: _JOBOBJECTINFOCLASS = 23;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved7Information: _JOBOBJECTINFOCLASS = 24;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved8Information: _JOBOBJECTINFOCLASS = 25;
pub const _JOBOBJECTINFOCLASS_MaxJobObjectInfoClass: _JOBOBJECTINFOCLASS = 26;
pub type _JOBOBJECTINFOCLASS = u32;
pub use self::_JOBOBJECTINFOCLASS as JOBOBJECTINFOCLASS;
pub const _FIRMWARE_TYPE_FirmwareTypeUnknown: _FIRMWARE_TYPE = 0;
pub const _FIRMWARE_TYPE_FirmwareTypeBios: _FIRMWARE_TYPE = 1;
pub const _FIRMWARE_TYPE_FirmwareTypeUefi: _FIRMWARE_TYPE = 2;
pub const _FIRMWARE_TYPE_FirmwareTypeMax: _FIRMWARE_TYPE = 3;
pub type _FIRMWARE_TYPE = u32;
pub use self::_FIRMWARE_TYPE as FIRMWARE_TYPE;
pub type PFIRMWARE_TYPE = *mut _FIRMWARE_TYPE;
pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationProcessorCore: _LOGICAL_PROCESSOR_RELATIONSHIP =
    0;
pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationNumaNode: _LOGICAL_PROCESSOR_RELATIONSHIP = 1;
pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationCache: _LOGICAL_PROCESSOR_RELATIONSHIP = 2;
pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationProcessorPackage:
    _LOGICAL_PROCESSOR_RELATIONSHIP = 3;
pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationGroup: _LOGICAL_PROCESSOR_RELATIONSHIP = 4;
pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationAll: _LOGICAL_PROCESSOR_RELATIONSHIP = 65535;
pub type _LOGICAL_PROCESSOR_RELATIONSHIP = u32;
pub use self::_LOGICAL_PROCESSOR_RELATIONSHIP as LOGICAL_PROCESSOR_RELATIONSHIP;
pub const _PROCESSOR_CACHE_TYPE_CacheUnified: _PROCESSOR_CACHE_TYPE = 0;
pub const _PROCESSOR_CACHE_TYPE_CacheInstruction: _PROCESSOR_CACHE_TYPE = 1;
pub const _PROCESSOR_CACHE_TYPE_CacheData: _PROCESSOR_CACHE_TYPE = 2;
pub const _PROCESSOR_CACHE_TYPE_CacheTrace: _PROCESSOR_CACHE_TYPE = 3;
pub type _PROCESSOR_CACHE_TYPE = u32;
pub use self::_PROCESSOR_CACHE_TYPE as PROCESSOR_CACHE_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CACHE_DESCRIPTOR {
    pub Level: BYTE,
    pub Associativity: BYTE,
    pub LineSize: WORD,
    pub Size: DWORD,
    pub Type: PROCESSOR_CACHE_TYPE,
}
pub type CACHE_DESCRIPTOR = _CACHE_DESCRIPTOR;
pub type PCACHE_DESCRIPTOR = *mut _CACHE_DESCRIPTOR;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
    pub ProcessorMask: ULONG_PTR,
    pub Relationship: LOGICAL_PROCESSOR_RELATIONSHIP,
    pub __bindgen_anon_1: _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1 {
    pub ProcessorCore: _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1,
    pub NumaNode: _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2,
    pub Cache: CACHE_DESCRIPTOR,
    pub Reserved: [ULONGLONG; 2usize],
    _bindgen_union_align: [u64; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
    pub Flags: BYTE,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2 {
    pub NodeNumber: DWORD,
}
pub type SYSTEM_LOGICAL_PROCESSOR_INFORMATION = _SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
pub type PSYSTEM_LOGICAL_PROCESSOR_INFORMATION = *mut _SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESSOR_RELATIONSHIP {
    pub Flags: BYTE,
    pub Reserved: [BYTE; 21usize],
    pub GroupCount: WORD,
    pub GroupMask: [GROUP_AFFINITY; 1usize],
}
pub type PROCESSOR_RELATIONSHIP = _PROCESSOR_RELATIONSHIP;
pub type PPROCESSOR_RELATIONSHIP = *mut _PROCESSOR_RELATIONSHIP;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NUMA_NODE_RELATIONSHIP {
    pub NodeNumber: DWORD,
    pub Reserved: [BYTE; 20usize],
    pub GroupMask: GROUP_AFFINITY,
}
pub type NUMA_NODE_RELATIONSHIP = _NUMA_NODE_RELATIONSHIP;
pub type PNUMA_NODE_RELATIONSHIP = *mut _NUMA_NODE_RELATIONSHIP;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CACHE_RELATIONSHIP {
    pub Level: BYTE,
    pub Associativity: BYTE,
    pub LineSize: WORD,
    pub CacheSize: DWORD,
    pub Type: PROCESSOR_CACHE_TYPE,
    pub Reserved: [BYTE; 20usize],
    pub GroupMask: GROUP_AFFINITY,
}
pub type CACHE_RELATIONSHIP = _CACHE_RELATIONSHIP;
pub type PCACHE_RELATIONSHIP = *mut _CACHE_RELATIONSHIP;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESSOR_GROUP_INFO {
    pub MaximumProcessorCount: BYTE,
    pub ActiveProcessorCount: BYTE,
    pub Reserved: [BYTE; 38usize],
    pub ActiveProcessorMask: KAFFINITY,
}
pub type PROCESSOR_GROUP_INFO = _PROCESSOR_GROUP_INFO;
pub type PPROCESSOR_GROUP_INFO = *mut _PROCESSOR_GROUP_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _GROUP_RELATIONSHIP {
    pub MaximumGroupCount: WORD,
    pub ActiveGroupCount: WORD,
    pub Reserved: [BYTE; 20usize],
    pub GroupInfo: [PROCESSOR_GROUP_INFO; 1usize],
}
pub type GROUP_RELATIONSHIP = _GROUP_RELATIONSHIP;
pub type PGROUP_RELATIONSHIP = *mut _GROUP_RELATIONSHIP;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
    pub Relationship: LOGICAL_PROCESSOR_RELATIONSHIP,
    pub Size: DWORD,
    pub __bindgen_anon_1: _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1 {
    pub Processor: PROCESSOR_RELATIONSHIP,
    pub NumaNode: NUMA_NODE_RELATIONSHIP,
    pub Cache: CACHE_RELATIONSHIP,
    pub Group: GROUP_RELATIONSHIP,
    _bindgen_union_align: [u64; 9usize],
}
pub type SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
pub type PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = *mut _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION {
    pub CycleTime: DWORD64,
}
pub type SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION;
pub type PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = *mut _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _XSTATE_FEATURE {
    pub Offset: DWORD,
    pub Size: DWORD,
}
pub type XSTATE_FEATURE = _XSTATE_FEATURE;
pub type PXSTATE_FEATURE = *mut _XSTATE_FEATURE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _XSTATE_CONFIGURATION {
    pub EnabledFeatures: DWORD64,
    pub EnabledVolatileFeatures: DWORD64,
    pub Size: DWORD,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub Features: [XSTATE_FEATURE; 64usize],
}
impl _XSTATE_CONFIGURATION {
    #[inline]
    pub fn OptimizedSave(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_OptimizedSave(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(OptimizedSave: DWORD) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let OptimizedSave: u32 = unsafe { ::std::mem::transmute(OptimizedSave) };
            OptimizedSave as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type XSTATE_CONFIGURATION = _XSTATE_CONFIGURATION;
pub type PXSTATE_CONFIGURATION = *mut _XSTATE_CONFIGURATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MEMORY_BASIC_INFORMATION {
    pub BaseAddress: PVOID,
    pub AllocationBase: PVOID,
    pub AllocationProtect: DWORD,
    pub RegionSize: SIZE_T,
    pub State: DWORD,
    pub Protect: DWORD,
    pub Type: DWORD,
}
pub type MEMORY_BASIC_INFORMATION = _MEMORY_BASIC_INFORMATION;
pub type PMEMORY_BASIC_INFORMATION = *mut _MEMORY_BASIC_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MEMORY_BASIC_INFORMATION32 {
    pub BaseAddress: DWORD,
    pub AllocationBase: DWORD,
    pub AllocationProtect: DWORD,
    pub RegionSize: DWORD,
    pub State: DWORD,
    pub Protect: DWORD,
    pub Type: DWORD,
}
pub type MEMORY_BASIC_INFORMATION32 = _MEMORY_BASIC_INFORMATION32;
pub type PMEMORY_BASIC_INFORMATION32 = *mut _MEMORY_BASIC_INFORMATION32;
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct _MEMORY_BASIC_INFORMATION64 {
    pub BaseAddress: ULONGLONG,
    pub AllocationBase: ULONGLONG,
    pub AllocationProtect: DWORD,
    pub __alignment1: DWORD,
    pub RegionSize: ULONGLONG,
    pub State: DWORD,
    pub Protect: DWORD,
    pub Type: DWORD,
    pub __alignment2: DWORD,
}
pub type MEMORY_BASIC_INFORMATION64 = _MEMORY_BASIC_INFORMATION64;
pub type PMEMORY_BASIC_INFORMATION64 = *mut _MEMORY_BASIC_INFORMATION64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct FILE_ID_128 {
    pub Identifier: [BYTE; 16usize],
}
pub type PFILE_ID_128 = *mut FILE_ID_128;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_NOTIFY_INFORMATION {
    pub NextEntryOffset: DWORD,
    pub Action: DWORD,
    pub FileNameLength: DWORD,
    pub FileName: [WCHAR; 1usize],
}
pub type FILE_NOTIFY_INFORMATION = _FILE_NOTIFY_INFORMATION;
pub type PFILE_NOTIFY_INFORMATION = *mut _FILE_NOTIFY_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _FILE_SEGMENT_ELEMENT {
    pub Buffer: PVOID64,
    pub Alignment: ULONGLONG,
    _bindgen_union_align: u64,
}
pub type FILE_SEGMENT_ELEMENT = _FILE_SEGMENT_ELEMENT;
pub type PFILE_SEGMENT_ELEMENT = *mut _FILE_SEGMENT_ELEMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REPARSE_GUID_DATA_BUFFER {
    pub ReparseTag: DWORD,
    pub ReparseDataLength: WORD,
    pub Reserved: WORD,
    pub ReparseGuid: GUID,
    pub GenericReparseBuffer: _REPARSE_GUID_DATA_BUFFER__bindgen_ty_1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REPARSE_GUID_DATA_BUFFER__bindgen_ty_1 {
    pub DataBuffer: [BYTE; 1usize],
}
pub type REPARSE_GUID_DATA_BUFFER = _REPARSE_GUID_DATA_BUFFER;
pub type PREPARSE_GUID_DATA_BUFFER = *mut _REPARSE_GUID_DATA_BUFFER;
extern "C" {
    pub static GUID_MAX_POWER_SAVINGS: GUID;
}
extern "C" {
    pub static GUID_MIN_POWER_SAVINGS: GUID;
}
extern "C" {
    pub static GUID_TYPICAL_POWER_SAVINGS: GUID;
}
extern "C" {
    pub static NO_SUBGROUP_GUID: GUID;
}
extern "C" {
    pub static ALL_POWERSCHEMES_GUID: GUID;
}
extern "C" {
    pub static GUID_POWERSCHEME_PERSONALITY: GUID;
}
extern "C" {
    pub static GUID_ACTIVE_POWERSCHEME: GUID;
}
extern "C" {
    pub static GUID_IDLE_RESILIENCY_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_IDLE_RESILIENCY_PERIOD: GUID;
}
extern "C" {
    pub static GUID_DISK_COALESCING_POWERDOWN_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_EXECUTION_REQUIRED_REQUEST_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_VIDEO_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_VIDEO_POWERDOWN_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_VIDEO_ANNOYANCE_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE: GUID;
}
extern "C" {
    pub static GUID_VIDEO_DIM_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_VIDEO_ADAPTIVE_POWERDOWN: GUID;
}
extern "C" {
    pub static GUID_MONITOR_POWER_ON: GUID;
}
extern "C" {
    pub static GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS: GUID;
}
extern "C" {
    pub static GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS: GUID;
}
extern "C" {
    pub static GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS: GUID;
}
extern "C" {
    pub static GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS: GUID;
}
extern "C" {
    pub static GUID_CONSOLE_DISPLAY_STATE: GUID;
}
extern "C" {
    pub static GUID_ALLOW_DISPLAY_REQUIRED: GUID;
}
extern "C" {
    pub static GUID_VIDEO_CONSOLE_LOCK_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_ADAPTIVE_POWER_BEHAVIOR_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_NON_ADAPTIVE_INPUT_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_DISK_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_DISK_POWERDOWN_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_DISK_IDLE_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_DISK_BURST_IGNORE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_DISK_ADAPTIVE_POWERDOWN: GUID;
}
extern "C" {
    pub static GUID_SLEEP_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_SLEEP_IDLE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_STANDBY_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_UNATTEND_SLEEP_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_HIBERNATE_TIMEOUT: GUID;
}
extern "C" {
    pub static GUID_HIBERNATE_FASTS4_POLICY: GUID;
}
extern "C" {
    pub static GUID_CRITICAL_POWER_TRANSITION: GUID;
}
extern "C" {
    pub static GUID_SYSTEM_AWAYMODE: GUID;
}
extern "C" {
    pub static GUID_ALLOW_AWAYMODE: GUID;
}
extern "C" {
    pub static GUID_ALLOW_STANDBY_STATES: GUID;
}
extern "C" {
    pub static GUID_ALLOW_RTC_WAKE: GUID;
}
extern "C" {
    pub static GUID_ALLOW_SYSTEM_REQUIRED: GUID;
}
extern "C" {
    pub static GUID_SYSTEM_BUTTON_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_POWERBUTTON_ACTION: GUID;
}
extern "C" {
    pub static GUID_SLEEPBUTTON_ACTION: GUID;
}
extern "C" {
    pub static GUID_USERINTERFACEBUTTON_ACTION: GUID;
}
extern "C" {
    pub static GUID_LIDCLOSE_ACTION: GUID;
}
extern "C" {
    pub static GUID_LIDOPEN_POWERSTATE: GUID;
}
extern "C" {
    pub static GUID_BATTERY_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_ACTION_0: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_LEVEL_0: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_FLAGS_0: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_ACTION_1: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_LEVEL_1: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_FLAGS_1: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_ACTION_2: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_LEVEL_2: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_FLAGS_2: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_ACTION_3: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_LEVEL_3: GUID;
}
extern "C" {
    pub static GUID_BATTERY_DISCHARGE_FLAGS_3: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_SETTINGS_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_THROTTLE_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_THROTTLE_MAXIMUM: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_THROTTLE_MINIMUM: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_ALLOW_THROTTLING: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_IDLESTATE_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERFSTATE_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_INCREASE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_INCREASE_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_INCREASE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_TIME_CHECK: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_BOOST_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_BOOST_MODE: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_IDLE_ALLOW_SCALING: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_IDLE_DISABLE: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_IDLE_STATE_MAXIMUM: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_IDLE_TIME_CHECK: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_MAX_CORES: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_MIN_CORES: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PARKING_CORE_OVERRIDE: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PARKING_PERF_STATE: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PARKING_CONCURRENCY_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PARKING_HEADROOM_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_HISTORY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_LATENCY_HINT: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_DISTRIBUTE_UTILITY: GUID;
}
extern "C" {
    pub static GUID_SYSTEM_COOLING_POLICY: GUID;
}
extern "C" {
    pub static GUID_LOCK_CONSOLE_ON_WAKE: GUID;
}
extern "C" {
    pub static GUID_DEVICE_IDLE_POLICY: GUID;
}
extern "C" {
    pub static GUID_ACDC_POWER_SOURCE: GUID;
}
extern "C" {
    pub static GUID_LIDSWITCH_STATE_CHANGE: GUID;
}
extern "C" {
    pub static GUID_BATTERY_PERCENTAGE_REMAINING: GUID;
}
extern "C" {
    pub static GUID_GLOBAL_USER_PRESENCE: GUID;
}
extern "C" {
    pub static GUID_SESSION_DISPLAY_STATUS: GUID;
}
extern "C" {
    pub static GUID_SESSION_USER_PRESENCE: GUID;
}
extern "C" {
    pub static GUID_IDLE_BACKGROUND_TASK: GUID;
}
extern "C" {
    pub static GUID_BACKGROUND_TASK_NOTIFICATION: GUID;
}
extern "C" {
    pub static GUID_APPLAUNCH_BUTTON: GUID;
}
extern "C" {
    pub static GUID_PCIEXPRESS_SETTINGS_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_PCIEXPRESS_ASPM_POLICY: GUID;
}
extern "C" {
    pub static GUID_ENABLE_SWITCH_FORCED_SHUTDOWN: GUID;
}
pub const _SYSTEM_POWER_STATE_PowerSystemUnspecified: _SYSTEM_POWER_STATE = 0;
pub const _SYSTEM_POWER_STATE_PowerSystemWorking: _SYSTEM_POWER_STATE = 1;
pub const _SYSTEM_POWER_STATE_PowerSystemSleeping1: _SYSTEM_POWER_STATE = 2;
pub const _SYSTEM_POWER_STATE_PowerSystemSleeping2: _SYSTEM_POWER_STATE = 3;
pub const _SYSTEM_POWER_STATE_PowerSystemSleeping3: _SYSTEM_POWER_STATE = 4;
pub const _SYSTEM_POWER_STATE_PowerSystemHibernate: _SYSTEM_POWER_STATE = 5;
pub const _SYSTEM_POWER_STATE_PowerSystemShutdown: _SYSTEM_POWER_STATE = 6;
pub const _SYSTEM_POWER_STATE_PowerSystemMaximum: _SYSTEM_POWER_STATE = 7;
pub type _SYSTEM_POWER_STATE = u32;
pub use self::_SYSTEM_POWER_STATE as SYSTEM_POWER_STATE;
pub type PSYSTEM_POWER_STATE = *mut _SYSTEM_POWER_STATE;
pub const POWER_ACTION_PowerActionNone: POWER_ACTION = 0;
pub const POWER_ACTION_PowerActionReserved: POWER_ACTION = 1;
pub const POWER_ACTION_PowerActionSleep: POWER_ACTION = 2;
pub const POWER_ACTION_PowerActionHibernate: POWER_ACTION = 3;
pub const POWER_ACTION_PowerActionShutdown: POWER_ACTION = 4;
pub const POWER_ACTION_PowerActionShutdownReset: POWER_ACTION = 5;
pub const POWER_ACTION_PowerActionShutdownOff: POWER_ACTION = 6;
pub const POWER_ACTION_PowerActionWarmEject: POWER_ACTION = 7;
pub type POWER_ACTION = u32;
pub type PPOWER_ACTION = *mut POWER_ACTION;
pub const _DEVICE_POWER_STATE_PowerDeviceUnspecified: _DEVICE_POWER_STATE = 0;
pub const _DEVICE_POWER_STATE_PowerDeviceD0: _DEVICE_POWER_STATE = 1;
pub const _DEVICE_POWER_STATE_PowerDeviceD1: _DEVICE_POWER_STATE = 2;
pub const _DEVICE_POWER_STATE_PowerDeviceD2: _DEVICE_POWER_STATE = 3;
pub const _DEVICE_POWER_STATE_PowerDeviceD3: _DEVICE_POWER_STATE = 4;
pub const _DEVICE_POWER_STATE_PowerDeviceMaximum: _DEVICE_POWER_STATE = 5;
pub type _DEVICE_POWER_STATE = u32;
pub use self::_DEVICE_POWER_STATE as DEVICE_POWER_STATE;
pub type PDEVICE_POWER_STATE = *mut _DEVICE_POWER_STATE;
pub const _MONITOR_DISPLAY_STATE_PowerMonitorOff: _MONITOR_DISPLAY_STATE = 0;
pub const _MONITOR_DISPLAY_STATE_PowerMonitorOn: _MONITOR_DISPLAY_STATE = 1;
pub const _MONITOR_DISPLAY_STATE_PowerMonitorDim: _MONITOR_DISPLAY_STATE = 2;
pub type _MONITOR_DISPLAY_STATE = u32;
pub use self::_MONITOR_DISPLAY_STATE as MONITOR_DISPLAY_STATE;
pub type PMONITOR_DISPLAY_STATE = *mut _MONITOR_DISPLAY_STATE;
pub const _USER_ACTIVITY_PRESENCE_PowerUserPresent: _USER_ACTIVITY_PRESENCE = 0;
pub const _USER_ACTIVITY_PRESENCE_PowerUserNotPresent: _USER_ACTIVITY_PRESENCE = 1;
pub const _USER_ACTIVITY_PRESENCE_PowerUserInactive: _USER_ACTIVITY_PRESENCE = 2;
pub const _USER_ACTIVITY_PRESENCE_PowerUserMaximum: _USER_ACTIVITY_PRESENCE = 3;
pub const _USER_ACTIVITY_PRESENCE_PowerUserInvalid: _USER_ACTIVITY_PRESENCE = 3;
pub type _USER_ACTIVITY_PRESENCE = u32;
pub use self::_USER_ACTIVITY_PRESENCE as USER_ACTIVITY_PRESENCE;
pub type PUSER_ACTIVITY_PRESENCE = *mut _USER_ACTIVITY_PRESENCE;
pub type EXECUTION_STATE = DWORD;
pub type PEXECUTION_STATE = *mut DWORD;
pub const LATENCY_TIME_LT_DONT_CARE: LATENCY_TIME = 0;
pub const LATENCY_TIME_LT_LOWEST_LATENCY: LATENCY_TIME = 1;
pub type LATENCY_TIME = u32;
pub const _POWER_REQUEST_TYPE_PowerRequestDisplayRequired: _POWER_REQUEST_TYPE = 0;
pub const _POWER_REQUEST_TYPE_PowerRequestSystemRequired: _POWER_REQUEST_TYPE = 1;
pub const _POWER_REQUEST_TYPE_PowerRequestAwayModeRequired: _POWER_REQUEST_TYPE = 2;
pub const _POWER_REQUEST_TYPE_PowerRequestExecutionRequired: _POWER_REQUEST_TYPE = 3;
pub type _POWER_REQUEST_TYPE = u32;
pub use self::_POWER_REQUEST_TYPE as POWER_REQUEST_TYPE;
pub type PPOWER_REQUEST_TYPE = *mut _POWER_REQUEST_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CM_Power_Data_s {
    pub PD_Size: DWORD,
    pub PD_MostRecentPowerState: DEVICE_POWER_STATE,
    pub PD_Capabilities: DWORD,
    pub PD_D1Latency: DWORD,
    pub PD_D2Latency: DWORD,
    pub PD_D3Latency: DWORD,
    pub PD_PowerStateMapping: [DEVICE_POWER_STATE; 7usize],
    pub PD_DeepestSystemWake: SYSTEM_POWER_STATE,
}
pub type CM_POWER_DATA = CM_Power_Data_s;
pub type PCM_POWER_DATA = *mut CM_Power_Data_s;
pub const POWER_INFORMATION_LEVEL_SystemPowerPolicyAc: POWER_INFORMATION_LEVEL = 0;
pub const POWER_INFORMATION_LEVEL_SystemPowerPolicyDc: POWER_INFORMATION_LEVEL = 1;
pub const POWER_INFORMATION_LEVEL_VerifySystemPolicyAc: POWER_INFORMATION_LEVEL = 2;
pub const POWER_INFORMATION_LEVEL_VerifySystemPolicyDc: POWER_INFORMATION_LEVEL = 3;
pub const POWER_INFORMATION_LEVEL_SystemPowerCapabilities: POWER_INFORMATION_LEVEL = 4;
pub const POWER_INFORMATION_LEVEL_SystemBatteryState: POWER_INFORMATION_LEVEL = 5;
pub const POWER_INFORMATION_LEVEL_SystemPowerStateHandler: POWER_INFORMATION_LEVEL = 6;
pub const POWER_INFORMATION_LEVEL_ProcessorStateHandler: POWER_INFORMATION_LEVEL = 7;
pub const POWER_INFORMATION_LEVEL_SystemPowerPolicyCurrent: POWER_INFORMATION_LEVEL = 8;
pub const POWER_INFORMATION_LEVEL_AdministratorPowerPolicy: POWER_INFORMATION_LEVEL = 9;
pub const POWER_INFORMATION_LEVEL_SystemReserveHiberFile: POWER_INFORMATION_LEVEL = 10;
pub const POWER_INFORMATION_LEVEL_ProcessorInformation: POWER_INFORMATION_LEVEL = 11;
pub const POWER_INFORMATION_LEVEL_SystemPowerInformation: POWER_INFORMATION_LEVEL = 12;
pub const POWER_INFORMATION_LEVEL_ProcessorStateHandler2: POWER_INFORMATION_LEVEL = 13;
pub const POWER_INFORMATION_LEVEL_LastWakeTime: POWER_INFORMATION_LEVEL = 14;
pub const POWER_INFORMATION_LEVEL_LastSleepTime: POWER_INFORMATION_LEVEL = 15;
pub const POWER_INFORMATION_LEVEL_SystemExecutionState: POWER_INFORMATION_LEVEL = 16;
pub const POWER_INFORMATION_LEVEL_SystemPowerStateNotifyHandler: POWER_INFORMATION_LEVEL = 17;
pub const POWER_INFORMATION_LEVEL_ProcessorPowerPolicyAc: POWER_INFORMATION_LEVEL = 18;
pub const POWER_INFORMATION_LEVEL_ProcessorPowerPolicyDc: POWER_INFORMATION_LEVEL = 19;
pub const POWER_INFORMATION_LEVEL_VerifyProcessorPowerPolicyAc: POWER_INFORMATION_LEVEL = 20;
pub const POWER_INFORMATION_LEVEL_VerifyProcessorPowerPolicyDc: POWER_INFORMATION_LEVEL = 21;
pub const POWER_INFORMATION_LEVEL_ProcessorPowerPolicyCurrent: POWER_INFORMATION_LEVEL = 22;
pub const POWER_INFORMATION_LEVEL_SystemPowerStateLogging: POWER_INFORMATION_LEVEL = 23;
pub const POWER_INFORMATION_LEVEL_SystemPowerLoggingEntry: POWER_INFORMATION_LEVEL = 24;
pub const POWER_INFORMATION_LEVEL_SetPowerSettingValue: POWER_INFORMATION_LEVEL = 25;
pub const POWER_INFORMATION_LEVEL_NotifyUserPowerSetting: POWER_INFORMATION_LEVEL = 26;
pub const POWER_INFORMATION_LEVEL_PowerInformationLevelUnused0: POWER_INFORMATION_LEVEL = 27;
pub const POWER_INFORMATION_LEVEL_SystemMonitorHiberBootPowerOff: POWER_INFORMATION_LEVEL = 28;
pub const POWER_INFORMATION_LEVEL_SystemVideoState: POWER_INFORMATION_LEVEL = 29;
pub const POWER_INFORMATION_LEVEL_TraceApplicationPowerMessage: POWER_INFORMATION_LEVEL = 30;
pub const POWER_INFORMATION_LEVEL_TraceApplicationPowerMessageEnd: POWER_INFORMATION_LEVEL = 31;
pub const POWER_INFORMATION_LEVEL_ProcessorPerfStates: POWER_INFORMATION_LEVEL = 32;
pub const POWER_INFORMATION_LEVEL_ProcessorIdleStates: POWER_INFORMATION_LEVEL = 33;
pub const POWER_INFORMATION_LEVEL_ProcessorCap: POWER_INFORMATION_LEVEL = 34;
pub const POWER_INFORMATION_LEVEL_SystemWakeSource: POWER_INFORMATION_LEVEL = 35;
pub const POWER_INFORMATION_LEVEL_SystemHiberFileInformation: POWER_INFORMATION_LEVEL = 36;
pub const POWER_INFORMATION_LEVEL_TraceServicePowerMessage: POWER_INFORMATION_LEVEL = 37;
pub const POWER_INFORMATION_LEVEL_ProcessorLoad: POWER_INFORMATION_LEVEL = 38;
pub const POWER_INFORMATION_LEVEL_PowerShutdownNotification: POWER_INFORMATION_LEVEL = 39;
pub const POWER_INFORMATION_LEVEL_MonitorCapabilities: POWER_INFORMATION_LEVEL = 40;
pub const POWER_INFORMATION_LEVEL_SessionPowerInit: POWER_INFORMATION_LEVEL = 41;
pub const POWER_INFORMATION_LEVEL_SessionDisplayState: POWER_INFORMATION_LEVEL = 42;
pub const POWER_INFORMATION_LEVEL_PowerRequestCreate: POWER_INFORMATION_LEVEL = 43;
pub const POWER_INFORMATION_LEVEL_PowerRequestAction: POWER_INFORMATION_LEVEL = 44;
pub const POWER_INFORMATION_LEVEL_GetPowerRequestList: POWER_INFORMATION_LEVEL = 45;
pub const POWER_INFORMATION_LEVEL_ProcessorInformationEx: POWER_INFORMATION_LEVEL = 46;
pub const POWER_INFORMATION_LEVEL_NotifyUserModeLegacyPowerEvent: POWER_INFORMATION_LEVEL = 47;
pub const POWER_INFORMATION_LEVEL_GroupPark: POWER_INFORMATION_LEVEL = 48;
pub const POWER_INFORMATION_LEVEL_ProcessorIdleDomains: POWER_INFORMATION_LEVEL = 49;
pub const POWER_INFORMATION_LEVEL_WakeTimerList: POWER_INFORMATION_LEVEL = 50;
pub const POWER_INFORMATION_LEVEL_SystemHiberFileSize: POWER_INFORMATION_LEVEL = 51;
pub const POWER_INFORMATION_LEVEL_ProcessorIdleStatesHv: POWER_INFORMATION_LEVEL = 52;
pub const POWER_INFORMATION_LEVEL_ProcessorPerfStatesHv: POWER_INFORMATION_LEVEL = 53;
pub const POWER_INFORMATION_LEVEL_ProcessorPerfCapHv: POWER_INFORMATION_LEVEL = 54;
pub const POWER_INFORMATION_LEVEL_ProcessorSetIdle: POWER_INFORMATION_LEVEL = 55;
pub const POWER_INFORMATION_LEVEL_LogicalProcessorIdling: POWER_INFORMATION_LEVEL = 56;
pub const POWER_INFORMATION_LEVEL_UserPresence: POWER_INFORMATION_LEVEL = 57;
pub const POWER_INFORMATION_LEVEL_PowerSettingNotificationName: POWER_INFORMATION_LEVEL = 58;
pub const POWER_INFORMATION_LEVEL_GetPowerSettingValue: POWER_INFORMATION_LEVEL = 59;
pub const POWER_INFORMATION_LEVEL_IdleResiliency: POWER_INFORMATION_LEVEL = 60;
pub const POWER_INFORMATION_LEVEL_SessionRITState: POWER_INFORMATION_LEVEL = 61;
pub const POWER_INFORMATION_LEVEL_SessionConnectNotification: POWER_INFORMATION_LEVEL = 62;
pub const POWER_INFORMATION_LEVEL_SessionPowerCleanup: POWER_INFORMATION_LEVEL = 63;
pub const POWER_INFORMATION_LEVEL_SessionLockState: POWER_INFORMATION_LEVEL = 64;
pub const POWER_INFORMATION_LEVEL_SystemHiberbootState: POWER_INFORMATION_LEVEL = 65;
pub const POWER_INFORMATION_LEVEL_PlatformInformation: POWER_INFORMATION_LEVEL = 66;
pub const POWER_INFORMATION_LEVEL_PdcInvocation: POWER_INFORMATION_LEVEL = 67;
pub const POWER_INFORMATION_LEVEL_MonitorInvocation: POWER_INFORMATION_LEVEL = 68;
pub const POWER_INFORMATION_LEVEL_FirmwareTableInformationRegistered: POWER_INFORMATION_LEVEL = 69;
pub const POWER_INFORMATION_LEVEL_SetShutdownSelectedTime: POWER_INFORMATION_LEVEL = 70;
pub const POWER_INFORMATION_LEVEL_SuspendResumeInvocation: POWER_INFORMATION_LEVEL = 71;
pub const POWER_INFORMATION_LEVEL_PlmPowerRequestCreate: POWER_INFORMATION_LEVEL = 72;
pub const POWER_INFORMATION_LEVEL_ScreenOff: POWER_INFORMATION_LEVEL = 73;
pub const POWER_INFORMATION_LEVEL_CsDeviceNotification: POWER_INFORMATION_LEVEL = 74;
pub const POWER_INFORMATION_LEVEL_PlatformRole: POWER_INFORMATION_LEVEL = 75;
pub const POWER_INFORMATION_LEVEL_LastResumePerformance: POWER_INFORMATION_LEVEL = 76;
pub const POWER_INFORMATION_LEVEL_DisplayBurst: POWER_INFORMATION_LEVEL = 77;
pub const POWER_INFORMATION_LEVEL_ExitLatencySamplingPercentage: POWER_INFORMATION_LEVEL = 78;
pub const POWER_INFORMATION_LEVEL_ApplyLowPowerScenarioSettings: POWER_INFORMATION_LEVEL = 79;
pub const POWER_INFORMATION_LEVEL_PowerInformationLevelMaximum: POWER_INFORMATION_LEVEL = 80;
pub type POWER_INFORMATION_LEVEL = u32;
pub const POWER_USER_PRESENCE_TYPE_UserNotPresent: POWER_USER_PRESENCE_TYPE = 0;
pub const POWER_USER_PRESENCE_TYPE_UserPresent: POWER_USER_PRESENCE_TYPE = 1;
pub const POWER_USER_PRESENCE_TYPE_UserUnknown: POWER_USER_PRESENCE_TYPE = 255;
pub type POWER_USER_PRESENCE_TYPE = u32;
pub type PPOWER_USER_PRESENCE_TYPE = *mut POWER_USER_PRESENCE_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POWER_USER_PRESENCE {
    pub UserPresence: POWER_USER_PRESENCE_TYPE,
}
pub type POWER_USER_PRESENCE = _POWER_USER_PRESENCE;
pub type PPOWER_USER_PRESENCE = *mut _POWER_USER_PRESENCE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POWER_SESSION_CONNECT {
    pub Connected: BOOLEAN,
    pub Console: BOOLEAN,
}
pub type POWER_SESSION_CONNECT = _POWER_SESSION_CONNECT;
pub type PPOWER_SESSION_CONNECT = *mut _POWER_SESSION_CONNECT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POWER_SESSION_TIMEOUTS {
    pub InputTimeout: DWORD,
    pub DisplayTimeout: DWORD,
}
pub type POWER_SESSION_TIMEOUTS = _POWER_SESSION_TIMEOUTS;
pub type PPOWER_SESSION_TIMEOUTS = *mut _POWER_SESSION_TIMEOUTS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POWER_SESSION_RIT_STATE {
    pub Active: BOOLEAN,
    pub LastInputTime: DWORD,
}
pub type POWER_SESSION_RIT_STATE = _POWER_SESSION_RIT_STATE;
pub type PPOWER_SESSION_RIT_STATE = *mut _POWER_SESSION_RIT_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POWER_SESSION_WINLOGON {
    pub SessionId: DWORD,
    pub Console: BOOLEAN,
    pub Locked: BOOLEAN,
}
pub type POWER_SESSION_WINLOGON = _POWER_SESSION_WINLOGON;
pub type PPOWER_SESSION_WINLOGON = *mut _POWER_SESSION_WINLOGON;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POWER_IDLE_RESILIENCY {
    pub CoalescingTimeout: DWORD,
    pub IdleResiliencyPeriod: DWORD,
}
pub type POWER_IDLE_RESILIENCY = _POWER_IDLE_RESILIENCY;
pub type PPOWER_IDLE_RESILIENCY = *mut _POWER_IDLE_RESILIENCY;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUnknown: POWER_MONITOR_REQUEST_REASON =
    0;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPowerButton:
    POWER_MONITOR_REQUEST_REASON = 1;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonRemoteConnection:
    POWER_MONITOR_REQUEST_REASON = 2;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonScMonitorpower:
    POWER_MONITOR_REQUEST_REASON = 3;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInput: POWER_MONITOR_REQUEST_REASON =
    4;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonAcDcDisplayBurst:
    POWER_MONITOR_REQUEST_REASON = 5;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserDisplayBurst:
    POWER_MONITOR_REQUEST_REASON = 6;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPoSetSystemState:
    POWER_MONITOR_REQUEST_REASON = 7;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSetThreadExecutionState:
    POWER_MONITOR_REQUEST_REASON = 8;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonFullWake: POWER_MONITOR_REQUEST_REASON =
    9;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSessionUnlock:
    POWER_MONITOR_REQUEST_REASON = 10;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonScreenOffRequest:
    POWER_MONITOR_REQUEST_REASON = 11;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonIdleTimeout:
    POWER_MONITOR_REQUEST_REASON = 12;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPolicyChange:
    POWER_MONITOR_REQUEST_REASON = 13;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonMax: POWER_MONITOR_REQUEST_REASON = 14;
pub type POWER_MONITOR_REQUEST_REASON = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POWER_MONITOR_INVOCATION {
    pub On: BOOLEAN,
    pub Console: BOOLEAN,
    pub RequestReason: POWER_MONITOR_REQUEST_REASON,
}
pub type POWER_MONITOR_INVOCATION = _POWER_MONITOR_INVOCATION;
pub type PPOWER_MONITOR_INVOCATION = *mut _POWER_MONITOR_INVOCATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RESUME_PERFORMANCE {
    pub PostTimeMs: DWORD,
    pub TotalResumeTimeMs: ULONGLONG,
    pub ResumeCompleteTimestamp: ULONGLONG,
}
pub type RESUME_PERFORMANCE = _RESUME_PERFORMANCE;
pub type PRESUME_PERFORMANCE = *mut _RESUME_PERFORMANCE;
pub const SYSTEM_POWER_CONDITION_PoAc: SYSTEM_POWER_CONDITION = 0;
pub const SYSTEM_POWER_CONDITION_PoDc: SYSTEM_POWER_CONDITION = 1;
pub const SYSTEM_POWER_CONDITION_PoHot: SYSTEM_POWER_CONDITION = 2;
pub const SYSTEM_POWER_CONDITION_PoConditionMaximum: SYSTEM_POWER_CONDITION = 3;
pub type SYSTEM_POWER_CONDITION = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SET_POWER_SETTING_VALUE {
    pub Version: DWORD,
    pub Guid: GUID,
    pub PowerCondition: SYSTEM_POWER_CONDITION,
    pub DataLength: DWORD,
    pub Data: [BYTE; 1usize],
}
pub type PSET_POWER_SETTING_VALUE = *mut SET_POWER_SETTING_VALUE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NOTIFY_USER_POWER_SETTING {
    pub Guid: GUID,
}
pub type PNOTIFY_USER_POWER_SETTING = *mut NOTIFY_USER_POWER_SETTING;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _APPLICATIONLAUNCH_SETTING_VALUE {
    pub ActivationTime: LARGE_INTEGER,
    pub Flags: DWORD,
    pub ButtonInstanceID: DWORD,
}
pub type APPLICATIONLAUNCH_SETTING_VALUE = _APPLICATIONLAUNCH_SETTING_VALUE;
pub type PAPPLICATIONLAUNCH_SETTING_VALUE = *mut _APPLICATIONLAUNCH_SETTING_VALUE;
pub const _POWER_PLATFORM_ROLE_PlatformRoleUnspecified: _POWER_PLATFORM_ROLE = 0;
pub const _POWER_PLATFORM_ROLE_PlatformRoleDesktop: _POWER_PLATFORM_ROLE = 1;
pub const _POWER_PLATFORM_ROLE_PlatformRoleMobile: _POWER_PLATFORM_ROLE = 2;
pub const _POWER_PLATFORM_ROLE_PlatformRoleWorkstation: _POWER_PLATFORM_ROLE = 3;
pub const _POWER_PLATFORM_ROLE_PlatformRoleEnterpriseServer: _POWER_PLATFORM_ROLE = 4;
pub const _POWER_PLATFORM_ROLE_PlatformRoleSOHOServer: _POWER_PLATFORM_ROLE = 5;
pub const _POWER_PLATFORM_ROLE_PlatformRoleAppliancePC: _POWER_PLATFORM_ROLE = 6;
pub const _POWER_PLATFORM_ROLE_PlatformRolePerformanceServer: _POWER_PLATFORM_ROLE = 7;
pub const _POWER_PLATFORM_ROLE_PlatformRoleSlate: _POWER_PLATFORM_ROLE = 8;
pub const _POWER_PLATFORM_ROLE_PlatformRoleMaximum: _POWER_PLATFORM_ROLE = 9;
pub type _POWER_PLATFORM_ROLE = u32;
pub use self::_POWER_PLATFORM_ROLE as POWER_PLATFORM_ROLE;
pub type PPOWER_PLATFORM_ROLE = *mut _POWER_PLATFORM_ROLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POWER_PLATFORM_INFORMATION {
    pub AoAc: BOOLEAN,
}
pub type POWER_PLATFORM_INFORMATION = _POWER_PLATFORM_INFORMATION;
pub type PPOWER_PLATFORM_INFORMATION = *mut _POWER_PLATFORM_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BATTERY_REPORTING_SCALE {
    pub Granularity: DWORD,
    pub Capacity: DWORD,
}
pub type PBATTERY_REPORTING_SCALE = *mut BATTERY_REPORTING_SCALE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_WMI_LEGACY_PERFSTATE {
    pub Frequency: DWORD,
    pub Flags: DWORD,
    pub PercentFrequency: DWORD,
}
pub type PPPM_WMI_LEGACY_PERFSTATE = *mut PPM_WMI_LEGACY_PERFSTATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_WMI_IDLE_STATE {
    pub Latency: DWORD,
    pub Power: DWORD,
    pub TimeCheck: DWORD,
    pub PromotePercent: BYTE,
    pub DemotePercent: BYTE,
    pub StateType: BYTE,
    pub Reserved: BYTE,
    pub StateFlags: DWORD,
    pub Context: DWORD,
    pub IdleHandler: DWORD,
    pub Reserved1: DWORD,
}
pub type PPPM_WMI_IDLE_STATE = *mut PPM_WMI_IDLE_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_WMI_IDLE_STATES {
    pub Type: DWORD,
    pub Count: DWORD,
    pub TargetState: DWORD,
    pub OldState: DWORD,
    pub TargetProcessors: DWORD64,
    pub State: [PPM_WMI_IDLE_STATE; 1usize],
}
pub type PPPM_WMI_IDLE_STATES = *mut PPM_WMI_IDLE_STATES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_WMI_IDLE_STATES_EX {
    pub Type: DWORD,
    pub Count: DWORD,
    pub TargetState: DWORD,
    pub OldState: DWORD,
    pub TargetProcessors: PVOID,
    pub State: [PPM_WMI_IDLE_STATE; 1usize],
}
pub type PPPM_WMI_IDLE_STATES_EX = *mut PPM_WMI_IDLE_STATES_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_WMI_PERF_STATE {
    pub Frequency: DWORD,
    pub Power: DWORD,
    pub PercentFrequency: BYTE,
    pub IncreaseLevel: BYTE,
    pub DecreaseLevel: BYTE,
    pub Type: BYTE,
    pub IncreaseTime: DWORD,
    pub DecreaseTime: DWORD,
    pub Control: DWORD64,
    pub Status: DWORD64,
    pub HitCount: DWORD,
    pub Reserved1: DWORD,
    pub Reserved2: DWORD64,
    pub Reserved3: DWORD64,
}
pub type PPPM_WMI_PERF_STATE = *mut PPM_WMI_PERF_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_WMI_PERF_STATES {
    pub Count: DWORD,
    pub MaxFrequency: DWORD,
    pub CurrentState: DWORD,
    pub MaxPerfState: DWORD,
    pub MinPerfState: DWORD,
    pub LowestPerfState: DWORD,
    pub ThermalConstraint: DWORD,
    pub BusyAdjThreshold: BYTE,
    pub PolicyType: BYTE,
    pub Type: BYTE,
    pub Reserved: BYTE,
    pub TimerInterval: DWORD,
    pub TargetProcessors: DWORD64,
    pub PStateHandler: DWORD,
    pub PStateContext: DWORD,
    pub TStateHandler: DWORD,
    pub TStateContext: DWORD,
    pub FeedbackHandler: DWORD,
    pub Reserved1: DWORD,
    pub Reserved2: DWORD64,
    pub State: [PPM_WMI_PERF_STATE; 1usize],
}
pub type PPPM_WMI_PERF_STATES = *mut PPM_WMI_PERF_STATES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_WMI_PERF_STATES_EX {
    pub Count: DWORD,
    pub MaxFrequency: DWORD,
    pub CurrentState: DWORD,
    pub MaxPerfState: DWORD,
    pub MinPerfState: DWORD,
    pub LowestPerfState: DWORD,
    pub ThermalConstraint: DWORD,
    pub BusyAdjThreshold: BYTE,
    pub PolicyType: BYTE,
    pub Type: BYTE,
    pub Reserved: BYTE,
    pub TimerInterval: DWORD,
    pub TargetProcessors: PVOID,
    pub PStateHandler: DWORD,
    pub PStateContext: DWORD,
    pub TStateHandler: DWORD,
    pub TStateContext: DWORD,
    pub FeedbackHandler: DWORD,
    pub Reserved1: DWORD,
    pub Reserved2: DWORD64,
    pub State: [PPM_WMI_PERF_STATE; 1usize],
}
pub type PPPM_WMI_PERF_STATES_EX = *mut PPM_WMI_PERF_STATES_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_IDLE_STATE_ACCOUNTING {
    pub IdleTransitions: DWORD,
    pub FailedTransitions: DWORD,
    pub InvalidBucketIndex: DWORD,
    pub TotalTime: DWORD64,
    pub IdleTimeBuckets: [DWORD; 6usize],
}
pub type PPPM_IDLE_STATE_ACCOUNTING = *mut PPM_IDLE_STATE_ACCOUNTING;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_IDLE_ACCOUNTING {
    pub StateCount: DWORD,
    pub TotalTransitions: DWORD,
    pub ResetCount: DWORD,
    pub StartTime: DWORD64,
    pub State: [PPM_IDLE_STATE_ACCOUNTING; 1usize],
}
pub type PPPM_IDLE_ACCOUNTING = *mut PPM_IDLE_ACCOUNTING;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_IDLE_STATE_BUCKET_EX {
    pub TotalTimeUs: DWORD64,
    pub MinTimeUs: DWORD,
    pub MaxTimeUs: DWORD,
    pub Count: DWORD,
}
pub type PPPM_IDLE_STATE_BUCKET_EX = *mut PPM_IDLE_STATE_BUCKET_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_IDLE_STATE_ACCOUNTING_EX {
    pub TotalTime: DWORD64,
    pub IdleTransitions: DWORD,
    pub FailedTransitions: DWORD,
    pub InvalidBucketIndex: DWORD,
    pub MinTimeUs: DWORD,
    pub MaxTimeUs: DWORD,
    pub CancelledTransitions: DWORD,
    pub IdleTimeBuckets: [PPM_IDLE_STATE_BUCKET_EX; 16usize],
}
pub type PPPM_IDLE_STATE_ACCOUNTING_EX = *mut PPM_IDLE_STATE_ACCOUNTING_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_IDLE_ACCOUNTING_EX {
    pub StateCount: DWORD,
    pub TotalTransitions: DWORD,
    pub ResetCount: DWORD,
    pub AbortCount: DWORD,
    pub StartTime: DWORD64,
    pub State: [PPM_IDLE_STATE_ACCOUNTING_EX; 1usize],
}
pub type PPPM_IDLE_ACCOUNTING_EX = *mut PPM_IDLE_ACCOUNTING_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_PERFSTATE_EVENT {
    pub State: DWORD,
    pub Status: DWORD,
    pub Latency: DWORD,
    pub Speed: DWORD,
    pub Processor: DWORD,
}
pub type PPPM_PERFSTATE_EVENT = *mut PPM_PERFSTATE_EVENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_PERFSTATE_DOMAIN_EVENT {
    pub State: DWORD,
    pub Latency: DWORD,
    pub Speed: DWORD,
    pub Processors: DWORD64,
}
pub type PPPM_PERFSTATE_DOMAIN_EVENT = *mut PPM_PERFSTATE_DOMAIN_EVENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_IDLESTATE_EVENT {
    pub NewState: DWORD,
    pub OldState: DWORD,
    pub Processors: DWORD64,
}
pub type PPPM_IDLESTATE_EVENT = *mut PPM_IDLESTATE_EVENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_THERMALCHANGE_EVENT {
    pub ThermalConstraint: DWORD,
    pub Processors: DWORD64,
}
pub type PPPM_THERMALCHANGE_EVENT = *mut PPM_THERMALCHANGE_EVENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PPM_THERMAL_POLICY_EVENT {
    pub Mode: BYTE,
    pub Processors: DWORD64,
}
pub type PPPM_THERMAL_POLICY_EVENT = *mut PPM_THERMAL_POLICY_EVENT;
extern "C" {
    pub static PPM_PERFSTATE_CHANGE_GUID: GUID;
}
extern "C" {
    pub static PPM_PERFSTATE_DOMAIN_CHANGE_GUID: GUID;
}
extern "C" {
    pub static PPM_IDLESTATE_CHANGE_GUID: GUID;
}
extern "C" {
    pub static PPM_PERFSTATES_DATA_GUID: GUID;
}
extern "C" {
    pub static PPM_IDLESTATES_DATA_GUID: GUID;
}
extern "C" {
    pub static PPM_IDLE_ACCOUNTING_GUID: GUID;
}
extern "C" {
    pub static PPM_IDLE_ACCOUNTING_EX_GUID: GUID;
}
extern "C" {
    pub static PPM_THERMALCONSTRAINT_GUID: GUID;
}
extern "C" {
    pub static PPM_PERFMON_PERFSTATE_GUID: GUID;
}
extern "C" {
    pub static PPM_THERMAL_POLICY_CHANGE_GUID: GUID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct POWER_ACTION_POLICY {
    pub Action: POWER_ACTION,
    pub Flags: DWORD,
    pub EventCode: DWORD,
}
pub type PPOWER_ACTION_POLICY = *mut POWER_ACTION_POLICY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PROCESSOR_IDLESTATE_INFO {
    pub TimeCheck: DWORD,
    pub DemotePercent: BYTE,
    pub PromotePercent: BYTE,
    pub Spare: [BYTE; 2usize],
}
pub type PPROCESSOR_IDLESTATE_INFO = *mut PROCESSOR_IDLESTATE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SYSTEM_POWER_LEVEL {
    pub Enable: BOOLEAN,
    pub Spare: [BYTE; 3usize],
    pub BatteryLevel: DWORD,
    pub PowerPolicy: POWER_ACTION_POLICY,
    pub MinSystemState: SYSTEM_POWER_STATE,
}
pub type PSYSTEM_POWER_LEVEL = *mut SYSTEM_POWER_LEVEL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_POWER_POLICY {
    pub Revision: DWORD,
    pub PowerButton: POWER_ACTION_POLICY,
    pub SleepButton: POWER_ACTION_POLICY,
    pub LidClose: POWER_ACTION_POLICY,
    pub LidOpenWake: SYSTEM_POWER_STATE,
    pub Reserved: DWORD,
    pub Idle: POWER_ACTION_POLICY,
    pub IdleTimeout: DWORD,
    pub IdleSensitivity: BYTE,
    pub DynamicThrottle: BYTE,
    pub Spare2: [BYTE; 2usize],
    pub MinSleep: SYSTEM_POWER_STATE,
    pub MaxSleep: SYSTEM_POWER_STATE,
    pub ReducedLatencySleep: SYSTEM_POWER_STATE,
    pub WinLogonFlags: DWORD,
    pub Spare3: DWORD,
    pub DozeS4Timeout: DWORD,
    pub BroadcastCapacityResolution: DWORD,
    pub DischargePolicy: [SYSTEM_POWER_LEVEL; 4usize],
    pub VideoTimeout: DWORD,
    pub VideoDimDisplay: BOOLEAN,
    pub VideoReserved: [DWORD; 3usize],
    pub SpindownTimeout: DWORD,
    pub OptimizeForPower: BOOLEAN,
    pub FanThrottleTolerance: BYTE,
    pub ForcedThrottle: BYTE,
    pub MinThrottle: BYTE,
    pub OverThrottled: POWER_ACTION_POLICY,
}
pub type SYSTEM_POWER_POLICY = _SYSTEM_POWER_POLICY;
pub type PSYSTEM_POWER_POLICY = *mut _SYSTEM_POWER_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct PROCESSOR_IDLESTATE_POLICY {
    pub Revision: WORD,
    pub Flags: PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1,
    pub PolicyCount: DWORD,
    pub Policy: [PROCESSOR_IDLESTATE_INFO; 3usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1 {
    pub AsWORD: WORD,
    pub __bindgen_anon_1: PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u16,
}
#[repr(C)]
#[repr(align(2))]
#[derive(Debug, Copy, Clone)]
pub struct PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u16>,
}
impl PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn AllowScaling(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_AllowScaling(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Disabled(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_Disabled(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 14u8) as u16) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 14u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        AllowScaling: WORD,
        Disabled: WORD,
        Reserved: WORD,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let AllowScaling: u16 = unsafe { ::std::mem::transmute(AllowScaling) };
            AllowScaling as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let Disabled: u16 = unsafe { ::std::mem::transmute(Disabled) };
            Disabled as u64
        });
        __bindgen_bitfield_unit.set(2usize, 14u8, {
            let Reserved: u16 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PPROCESSOR_IDLESTATE_POLICY = *mut PROCESSOR_IDLESTATE_POLICY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESSOR_POWER_POLICY_INFO {
    pub TimeCheck: DWORD,
    pub DemoteLimit: DWORD,
    pub PromoteLimit: DWORD,
    pub DemotePercent: BYTE,
    pub PromotePercent: BYTE,
    pub Spare: [BYTE; 2usize],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _PROCESSOR_POWER_POLICY_INFO {
    #[inline]
    pub fn AllowDemotion(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AllowDemotion(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AllowPromotion(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AllowPromotion(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 30u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        AllowDemotion: DWORD,
        AllowPromotion: DWORD,
        Reserved: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let AllowDemotion: u32 = unsafe { ::std::mem::transmute(AllowDemotion) };
            AllowDemotion as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let AllowPromotion: u32 = unsafe { ::std::mem::transmute(AllowPromotion) };
            AllowPromotion as u64
        });
        __bindgen_bitfield_unit.set(2usize, 30u8, {
            let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESSOR_POWER_POLICY_INFO = _PROCESSOR_POWER_POLICY_INFO;
pub type PPROCESSOR_POWER_POLICY_INFO = *mut _PROCESSOR_POWER_POLICY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESSOR_POWER_POLICY {
    pub Revision: DWORD,
    pub DynamicThrottle: BYTE,
    pub Spare: [BYTE; 3usize],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
    pub PolicyCount: DWORD,
    pub Policy: [PROCESSOR_POWER_POLICY_INFO; 3usize],
}
impl _PROCESSOR_POWER_POLICY {
    #[inline]
    pub fn DisableCStates(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_DisableCStates(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        DisableCStates: DWORD,
        Reserved: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let DisableCStates: u32 = unsafe { ::std::mem::transmute(DisableCStates) };
            DisableCStates as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PROCESSOR_POWER_POLICY = _PROCESSOR_POWER_POLICY;
pub type PPROCESSOR_POWER_POLICY = *mut _PROCESSOR_POWER_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct PROCESSOR_PERFSTATE_POLICY {
    pub Revision: DWORD,
    pub MaxThrottle: BYTE,
    pub MinThrottle: BYTE,
    pub BusyAdjThreshold: BYTE,
    pub __bindgen_anon_1: PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1,
    pub TimeCheck: DWORD,
    pub IncreaseTime: DWORD,
    pub DecreaseTime: DWORD,
    pub IncreasePercent: DWORD,
    pub DecreasePercent: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1 {
    pub Spare: BYTE,
    pub Flags: PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u8,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub AsBYTE: BYTE,
    pub __bindgen_anon_1: PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u8,
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
}
impl PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn NoDomainAccounting(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_NoDomainAccounting(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn IncreasePolicy(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_IncreasePolicy(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn DecreasePolicy(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_DecreasePolicy(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u8) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        NoDomainAccounting: BYTE,
        IncreasePolicy: BYTE,
        DecreasePolicy: BYTE,
        Reserved: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let NoDomainAccounting: u8 = unsafe { ::std::mem::transmute(NoDomainAccounting) };
            NoDomainAccounting as u64
        });
        __bindgen_bitfield_unit.set(1usize, 2u8, {
            let IncreasePolicy: u8 = unsafe { ::std::mem::transmute(IncreasePolicy) };
            IncreasePolicy as u64
        });
        __bindgen_bitfield_unit.set(3usize, 2u8, {
            let DecreasePolicy: u8 = unsafe { ::std::mem::transmute(DecreasePolicy) };
            DecreasePolicy as u64
        });
        __bindgen_bitfield_unit.set(5usize, 3u8, {
            let Reserved: u8 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type PPROCESSOR_PERFSTATE_POLICY = *mut PROCESSOR_PERFSTATE_POLICY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ADMINISTRATOR_POWER_POLICY {
    pub MinSleep: SYSTEM_POWER_STATE,
    pub MaxSleep: SYSTEM_POWER_STATE,
    pub MinVideoTimeout: DWORD,
    pub MaxVideoTimeout: DWORD,
    pub MinSpindownTimeout: DWORD,
    pub MaxSpindownTimeout: DWORD,
}
pub type ADMINISTRATOR_POWER_POLICY = _ADMINISTRATOR_POWER_POLICY;
pub type PADMINISTRATOR_POWER_POLICY = *mut _ADMINISTRATOR_POWER_POLICY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SYSTEM_POWER_CAPABILITIES {
    pub PowerButtonPresent: BOOLEAN,
    pub SleepButtonPresent: BOOLEAN,
    pub LidPresent: BOOLEAN,
    pub SystemS1: BOOLEAN,
    pub SystemS2: BOOLEAN,
    pub SystemS3: BOOLEAN,
    pub SystemS4: BOOLEAN,
    pub SystemS5: BOOLEAN,
    pub HiberFilePresent: BOOLEAN,
    pub FullWake: BOOLEAN,
    pub VideoDimPresent: BOOLEAN,
    pub ApmPresent: BOOLEAN,
    pub UpsPresent: BOOLEAN,
    pub ThermalControl: BOOLEAN,
    pub ProcessorThrottle: BOOLEAN,
    pub ProcessorMinThrottle: BYTE,
    pub ProcessorMaxThrottle: BYTE,
    pub FastSystemS4: BOOLEAN,
    pub spare2: [BYTE; 3usize],
    pub DiskSpinDown: BOOLEAN,
    pub spare3: [BYTE; 8usize],
    pub SystemBatteriesPresent: BOOLEAN,
    pub BatteriesAreShortTerm: BOOLEAN,
    pub BatteryScale: [BATTERY_REPORTING_SCALE; 3usize],
    pub AcOnLineWake: SYSTEM_POWER_STATE,
    pub SoftLidWake: SYSTEM_POWER_STATE,
    pub RtcWake: SYSTEM_POWER_STATE,
    pub MinDeviceWakeState: SYSTEM_POWER_STATE,
    pub DefaultLowLatencyWake: SYSTEM_POWER_STATE,
}
pub type PSYSTEM_POWER_CAPABILITIES = *mut SYSTEM_POWER_CAPABILITIES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SYSTEM_BATTERY_STATE {
    pub AcOnLine: BOOLEAN,
    pub BatteryPresent: BOOLEAN,
    pub Charging: BOOLEAN,
    pub Discharging: BOOLEAN,
    pub Spare1: [BOOLEAN; 4usize],
    pub MaxCapacity: DWORD,
    pub RemainingCapacity: DWORD,
    pub Rate: DWORD,
    pub EstimatedTime: DWORD,
    pub DefaultAlert1: DWORD,
    pub DefaultAlert2: DWORD,
}
pub type PSYSTEM_BATTERY_STATE = *mut SYSTEM_BATTERY_STATE;
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DOS_HEADER {
    pub e_magic: WORD,
    pub e_cblp: WORD,
    pub e_cp: WORD,
    pub e_crlc: WORD,
    pub e_cparhdr: WORD,
    pub e_minalloc: WORD,
    pub e_maxalloc: WORD,
    pub e_ss: WORD,
    pub e_sp: WORD,
    pub e_csum: WORD,
    pub e_ip: WORD,
    pub e_cs: WORD,
    pub e_lfarlc: WORD,
    pub e_ovno: WORD,
    pub e_res: [WORD; 4usize],
    pub e_oemid: WORD,
    pub e_oeminfo: WORD,
    pub e_res2: [WORD; 10usize],
    pub e_lfanew: LONG,
}
pub type IMAGE_DOS_HEADER = _IMAGE_DOS_HEADER;
pub type PIMAGE_DOS_HEADER = *mut _IMAGE_DOS_HEADER;
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_OS2_HEADER {
    pub ne_magic: WORD,
    pub ne_ver: CHAR,
    pub ne_rev: CHAR,
    pub ne_enttab: WORD,
    pub ne_cbenttab: WORD,
    pub ne_crc: LONG,
    pub ne_flags: WORD,
    pub ne_autodata: WORD,
    pub ne_heap: WORD,
    pub ne_stack: WORD,
    pub ne_csip: LONG,
    pub ne_sssp: LONG,
    pub ne_cseg: WORD,
    pub ne_cmod: WORD,
    pub ne_cbnrestab: WORD,
    pub ne_segtab: WORD,
    pub ne_rsrctab: WORD,
    pub ne_restab: WORD,
    pub ne_modtab: WORD,
    pub ne_imptab: WORD,
    pub ne_nrestab: LONG,
    pub ne_cmovent: WORD,
    pub ne_align: WORD,
    pub ne_cres: WORD,
    pub ne_exetyp: BYTE,
    pub ne_flagsothers: BYTE,
    pub ne_pretthunks: WORD,
    pub ne_psegrefbytes: WORD,
    pub ne_swaparea: WORD,
    pub ne_expver: WORD,
}
pub type IMAGE_OS2_HEADER = _IMAGE_OS2_HEADER;
pub type PIMAGE_OS2_HEADER = *mut _IMAGE_OS2_HEADER;
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_VXD_HEADER {
    pub e32_magic: WORD,
    pub e32_border: BYTE,
    pub e32_worder: BYTE,
    pub e32_level: DWORD,
    pub e32_cpu: WORD,
    pub e32_os: WORD,
    pub e32_ver: DWORD,
    pub e32_mflags: DWORD,
    pub e32_mpages: DWORD,
    pub e32_startobj: DWORD,
    pub e32_eip: DWORD,
    pub e32_stackobj: DWORD,
    pub e32_esp: DWORD,
    pub e32_pagesize: DWORD,
    pub e32_lastpagesize: DWORD,
    pub e32_fixupsize: DWORD,
    pub e32_fixupsum: DWORD,
    pub e32_ldrsize: DWORD,
    pub e32_ldrsum: DWORD,
    pub e32_objtab: DWORD,
    pub e32_objcnt: DWORD,
    pub e32_objmap: DWORD,
    pub e32_itermap: DWORD,
    pub e32_rsrctab: DWORD,
    pub e32_rsrccnt: DWORD,
    pub e32_restab: DWORD,
    pub e32_enttab: DWORD,
    pub e32_dirtab: DWORD,
    pub e32_dircnt: DWORD,
    pub e32_fpagetab: DWORD,
    pub e32_frectab: DWORD,
    pub e32_impmod: DWORD,
    pub e32_impmodcnt: DWORD,
    pub e32_impproc: DWORD,
    pub e32_pagesum: DWORD,
    pub e32_datapage: DWORD,
    pub e32_preload: DWORD,
    pub e32_nrestab: DWORD,
    pub e32_cbnrestab: DWORD,
    pub e32_nressum: DWORD,
    pub e32_autodata: DWORD,
    pub e32_debuginfo: DWORD,
    pub e32_debuglen: DWORD,
    pub e32_instpreload: DWORD,
    pub e32_instdemand: DWORD,
    pub e32_heapsize: DWORD,
    pub e32_res3: [BYTE; 12usize],
    pub e32_winresoff: DWORD,
    pub e32_winreslen: DWORD,
    pub e32_devid: WORD,
    pub e32_ddkver: WORD,
}
pub type IMAGE_VXD_HEADER = _IMAGE_VXD_HEADER;
pub type PIMAGE_VXD_HEADER = *mut _IMAGE_VXD_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_FILE_HEADER {
    pub Machine: WORD,
    pub NumberOfSections: WORD,
    pub TimeDateStamp: DWORD,
    pub PointerToSymbolTable: DWORD,
    pub NumberOfSymbols: DWORD,
    pub SizeOfOptionalHeader: WORD,
    pub Characteristics: WORD,
}
pub type IMAGE_FILE_HEADER = _IMAGE_FILE_HEADER;
pub type PIMAGE_FILE_HEADER = *mut _IMAGE_FILE_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DATA_DIRECTORY {
    pub VirtualAddress: DWORD,
    pub Size: DWORD,
}
pub type IMAGE_DATA_DIRECTORY = _IMAGE_DATA_DIRECTORY;
pub type PIMAGE_DATA_DIRECTORY = *mut _IMAGE_DATA_DIRECTORY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_OPTIONAL_HEADER {
    pub Magic: WORD,
    pub MajorLinkerVersion: BYTE,
    pub MinorLinkerVersion: BYTE,
    pub SizeOfCode: DWORD,
    pub SizeOfInitializedData: DWORD,
    pub SizeOfUninitializedData: DWORD,
    pub AddressOfEntryPoint: DWORD,
    pub BaseOfCode: DWORD,
    pub BaseOfData: DWORD,
    pub ImageBase: DWORD,
    pub SectionAlignment: DWORD,
    pub FileAlignment: DWORD,
    pub MajorOperatingSystemVersion: WORD,
    pub MinorOperatingSystemVersion: WORD,
    pub MajorImageVersion: WORD,
    pub MinorImageVersion: WORD,
    pub MajorSubsystemVersion: WORD,
    pub MinorSubsystemVersion: WORD,
    pub Win32VersionValue: DWORD,
    pub SizeOfImage: DWORD,
    pub SizeOfHeaders: DWORD,
    pub CheckSum: DWORD,
    pub Subsystem: WORD,
    pub DllCharacteristics: WORD,
    pub SizeOfStackReserve: DWORD,
    pub SizeOfStackCommit: DWORD,
    pub SizeOfHeapReserve: DWORD,
    pub SizeOfHeapCommit: DWORD,
    pub LoaderFlags: DWORD,
    pub NumberOfRvaAndSizes: DWORD,
    pub DataDirectory: [IMAGE_DATA_DIRECTORY; 16usize],
}
pub type IMAGE_OPTIONAL_HEADER32 = _IMAGE_OPTIONAL_HEADER;
pub type PIMAGE_OPTIONAL_HEADER32 = *mut _IMAGE_OPTIONAL_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_ROM_OPTIONAL_HEADER {
    pub Magic: WORD,
    pub MajorLinkerVersion: BYTE,
    pub MinorLinkerVersion: BYTE,
    pub SizeOfCode: DWORD,
    pub SizeOfInitializedData: DWORD,
    pub SizeOfUninitializedData: DWORD,
    pub AddressOfEntryPoint: DWORD,
    pub BaseOfCode: DWORD,
    pub BaseOfData: DWORD,
    pub BaseOfBss: DWORD,
    pub GprMask: DWORD,
    pub CprMask: [DWORD; 4usize],
    pub GpValue: DWORD,
}
pub type IMAGE_ROM_OPTIONAL_HEADER = _IMAGE_ROM_OPTIONAL_HEADER;
pub type PIMAGE_ROM_OPTIONAL_HEADER = *mut _IMAGE_ROM_OPTIONAL_HEADER;
#[repr(C, packed(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_OPTIONAL_HEADER64 {
    pub Magic: WORD,
    pub MajorLinkerVersion: BYTE,
    pub MinorLinkerVersion: BYTE,
    pub SizeOfCode: DWORD,
    pub SizeOfInitializedData: DWORD,
    pub SizeOfUninitializedData: DWORD,
    pub AddressOfEntryPoint: DWORD,
    pub BaseOfCode: DWORD,
    pub ImageBase: ULONGLONG,
    pub SectionAlignment: DWORD,
    pub FileAlignment: DWORD,
    pub MajorOperatingSystemVersion: WORD,
    pub MinorOperatingSystemVersion: WORD,
    pub MajorImageVersion: WORD,
    pub MinorImageVersion: WORD,
    pub MajorSubsystemVersion: WORD,
    pub MinorSubsystemVersion: WORD,
    pub Win32VersionValue: DWORD,
    pub SizeOfImage: DWORD,
    pub SizeOfHeaders: DWORD,
    pub CheckSum: DWORD,
    pub Subsystem: WORD,
    pub DllCharacteristics: WORD,
    pub SizeOfStackReserve: ULONGLONG,
    pub SizeOfStackCommit: ULONGLONG,
    pub SizeOfHeapReserve: ULONGLONG,
    pub SizeOfHeapCommit: ULONGLONG,
    pub LoaderFlags: DWORD,
    pub NumberOfRvaAndSizes: DWORD,
    pub DataDirectory: [IMAGE_DATA_DIRECTORY; 16usize],
}
pub type IMAGE_OPTIONAL_HEADER64 = _IMAGE_OPTIONAL_HEADER64;
pub type PIMAGE_OPTIONAL_HEADER64 = *mut _IMAGE_OPTIONAL_HEADER64;
pub type IMAGE_OPTIONAL_HEADER = IMAGE_OPTIONAL_HEADER64;
pub type PIMAGE_OPTIONAL_HEADER = PIMAGE_OPTIONAL_HEADER64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_NT_HEADERS64 {
    pub Signature: DWORD,
    pub FileHeader: IMAGE_FILE_HEADER,
    pub OptionalHeader: IMAGE_OPTIONAL_HEADER64,
}
pub type IMAGE_NT_HEADERS64 = _IMAGE_NT_HEADERS64;
pub type PIMAGE_NT_HEADERS64 = *mut _IMAGE_NT_HEADERS64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_NT_HEADERS {
    pub Signature: DWORD,
    pub FileHeader: IMAGE_FILE_HEADER,
    pub OptionalHeader: IMAGE_OPTIONAL_HEADER32,
}
pub type IMAGE_NT_HEADERS32 = _IMAGE_NT_HEADERS;
pub type PIMAGE_NT_HEADERS32 = *mut _IMAGE_NT_HEADERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_ROM_HEADERS {
    pub FileHeader: IMAGE_FILE_HEADER,
    pub OptionalHeader: IMAGE_ROM_OPTIONAL_HEADER,
}
pub type IMAGE_ROM_HEADERS = _IMAGE_ROM_HEADERS;
pub type PIMAGE_ROM_HEADERS = *mut _IMAGE_ROM_HEADERS;
pub type IMAGE_NT_HEADERS = IMAGE_NT_HEADERS64;
pub type PIMAGE_NT_HEADERS = PIMAGE_NT_HEADERS64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ANON_OBJECT_HEADER {
    pub Sig1: WORD,
    pub Sig2: WORD,
    pub Version: WORD,
    pub Machine: WORD,
    pub TimeDateStamp: DWORD,
    pub ClassID: CLSID,
    pub SizeOfData: DWORD,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ANON_OBJECT_HEADER_V2 {
    pub Sig1: WORD,
    pub Sig2: WORD,
    pub Version: WORD,
    pub Machine: WORD,
    pub TimeDateStamp: DWORD,
    pub ClassID: CLSID,
    pub SizeOfData: DWORD,
    pub Flags: DWORD,
    pub MetaDataSize: DWORD,
    pub MetaDataOffset: DWORD,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ANON_OBJECT_HEADER_BIGOBJ {
    pub Sig1: WORD,
    pub Sig2: WORD,
    pub Version: WORD,
    pub Machine: WORD,
    pub TimeDateStamp: DWORD,
    pub ClassID: CLSID,
    pub SizeOfData: DWORD,
    pub Flags: DWORD,
    pub MetaDataSize: DWORD,
    pub MetaDataOffset: DWORD,
    pub NumberOfSections: DWORD,
    pub PointerToSymbolTable: DWORD,
    pub NumberOfSymbols: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_SECTION_HEADER {
    pub Name: [BYTE; 8usize],
    pub Misc: _IMAGE_SECTION_HEADER__bindgen_ty_1,
    pub VirtualAddress: DWORD,
    pub SizeOfRawData: DWORD,
    pub PointerToRawData: DWORD,
    pub PointerToRelocations: DWORD,
    pub PointerToLinenumbers: DWORD,
    pub NumberOfRelocations: WORD,
    pub NumberOfLinenumbers: WORD,
    pub Characteristics: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_SECTION_HEADER__bindgen_ty_1 {
    pub PhysicalAddress: DWORD,
    pub VirtualSize: DWORD,
    _bindgen_union_align: u32,
}
pub type IMAGE_SECTION_HEADER = _IMAGE_SECTION_HEADER;
pub type PIMAGE_SECTION_HEADER = *mut _IMAGE_SECTION_HEADER;
#[repr(C, packed(2))]
#[derive(Copy, Clone)]
pub struct _IMAGE_SYMBOL {
    pub N: _IMAGE_SYMBOL__bindgen_ty_1,
    pub Value: DWORD,
    pub SectionNumber: SHORT,
    pub Type: WORD,
    pub StorageClass: BYTE,
    pub NumberOfAuxSymbols: BYTE,
}
#[repr(C, packed(2))]
#[derive(Copy, Clone)]
pub union _IMAGE_SYMBOL__bindgen_ty_1 {
    pub ShortName: [BYTE; 8usize],
    pub Name: _IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1,
    pub LongName: [DWORD; 2usize],
    _bindgen_union_align: [u16; 4usize],
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1 {
    pub Short: DWORD,
    pub Long: DWORD,
}
pub type IMAGE_SYMBOL = _IMAGE_SYMBOL;
pub type PIMAGE_SYMBOL = *mut IMAGE_SYMBOL;
#[repr(C, packed(2))]
#[derive(Copy, Clone)]
pub struct _IMAGE_SYMBOL_EX {
    pub N: _IMAGE_SYMBOL_EX__bindgen_ty_1,
    pub Value: DWORD,
    pub SectionNumber: LONG,
    pub Type: WORD,
    pub StorageClass: BYTE,
    pub NumberOfAuxSymbols: BYTE,
}
#[repr(C, packed(2))]
#[derive(Copy, Clone)]
pub union _IMAGE_SYMBOL_EX__bindgen_ty_1 {
    pub ShortName: [BYTE; 8usize],
    pub Name: _IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1,
    pub LongName: [DWORD; 2usize],
    _bindgen_union_align: [u16; 4usize],
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1 {
    pub Short: DWORD,
    pub Long: DWORD,
}
pub type IMAGE_SYMBOL_EX = _IMAGE_SYMBOL_EX;
pub type PIMAGE_SYMBOL_EX = *mut _IMAGE_SYMBOL_EX;
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct IMAGE_AUX_SYMBOL_TOKEN_DEF {
    pub bAuxType: BYTE,
    pub bReserved: BYTE,
    pub SymbolTableIndex: DWORD,
    pub rgbReserved: [BYTE; 12usize],
}
pub type PIMAGE_AUX_SYMBOL_TOKEN_DEF = *mut IMAGE_AUX_SYMBOL_TOKEN_DEF;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_AUX_SYMBOL {
    pub Sym: _IMAGE_AUX_SYMBOL__bindgen_ty_1,
    pub File: _IMAGE_AUX_SYMBOL__bindgen_ty_2,
    pub Section: _IMAGE_AUX_SYMBOL__bindgen_ty_3,
    pub TokenDef: IMAGE_AUX_SYMBOL_TOKEN_DEF,
    pub CRC: _IMAGE_AUX_SYMBOL__bindgen_ty_4,
    _bindgen_union_align: [u16; 9usize],
}
#[repr(C, packed(2))]
#[derive(Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_1 {
    pub TagIndex: DWORD,
    pub Misc: _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1,
    pub FcnAry: _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2,
    pub TvIndex: WORD,
}
#[repr(C, packed(2))]
#[derive(Copy, Clone)]
pub union _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1 {
    pub LnSz: _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
    pub TotalSize: DWORD,
    _bindgen_union_align: [u16; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    pub Linenumber: WORD,
    pub Size: WORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2 {
    pub Function: _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
    pub Array: _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2,
    _bindgen_union_align: [u16; 4usize],
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
    pub PointerToLinenumber: DWORD,
    pub PointerToNextFunction: DWORD,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2 {
    pub Dimension: [WORD; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_2 {
    pub Name: [BYTE; 18usize],
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_3 {
    pub Length: DWORD,
    pub NumberOfRelocations: WORD,
    pub NumberOfLinenumbers: WORD,
    pub CheckSum: DWORD,
    pub Number: SHORT,
    pub Selection: BYTE,
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_4 {
    pub crc: DWORD,
    pub rgbReserved: [BYTE; 14usize],
}
pub type IMAGE_AUX_SYMBOL = _IMAGE_AUX_SYMBOL;
pub type PIMAGE_AUX_SYMBOL = *mut _IMAGE_AUX_SYMBOL;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_AUX_SYMBOL_EX {
    pub Sym: _IMAGE_AUX_SYMBOL_EX__bindgen_ty_1,
    pub File: _IMAGE_AUX_SYMBOL_EX__bindgen_ty_2,
    pub Section: _IMAGE_AUX_SYMBOL_EX__bindgen_ty_3,
    pub __bindgen_anon_1: _IMAGE_AUX_SYMBOL_EX__bindgen_ty_4,
    pub CRC: _IMAGE_AUX_SYMBOL_EX__bindgen_ty_5,
    _bindgen_union_align: [u16; 10usize],
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL_EX__bindgen_ty_1 {
    pub WeakDefaultSymIndex: DWORD,
    pub WeakSearchType: DWORD,
    pub rgbReserved: [BYTE; 12usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL_EX__bindgen_ty_2 {
    pub Name: [BYTE; 20usize],
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL_EX__bindgen_ty_3 {
    pub Length: DWORD,
    pub NumberOfRelocations: WORD,
    pub NumberOfLinenumbers: WORD,
    pub CheckSum: DWORD,
    pub Number: SHORT,
    pub Selection: BYTE,
    pub bReserved: BYTE,
    pub HighNumber: SHORT,
    pub rgbReserved: [BYTE; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL_EX__bindgen_ty_4 {
    pub TokenDef: IMAGE_AUX_SYMBOL_TOKEN_DEF,
    pub rgbReserved: [BYTE; 2usize],
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL_EX__bindgen_ty_5 {
    pub crc: DWORD,
    pub rgbReserved: [BYTE; 16usize],
}
pub type IMAGE_AUX_SYMBOL_EX = _IMAGE_AUX_SYMBOL_EX;
pub type PIMAGE_AUX_SYMBOL_EX = *mut _IMAGE_AUX_SYMBOL_EX;
pub const IMAGE_AUX_SYMBOL_TYPE_IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF: IMAGE_AUX_SYMBOL_TYPE = 1;
pub type IMAGE_AUX_SYMBOL_TYPE = u32;
#[repr(C, packed(2))]
#[derive(Copy, Clone)]
pub struct _IMAGE_RELOCATION {
    pub __bindgen_anon_1: _IMAGE_RELOCATION__bindgen_ty_1,
    pub SymbolTableIndex: DWORD,
    pub Type: WORD,
}
#[repr(C, packed(2))]
#[derive(Copy, Clone)]
pub union _IMAGE_RELOCATION__bindgen_ty_1 {
    pub VirtualAddress: DWORD,
    pub RelocCount: DWORD,
    _bindgen_union_align: [u16; 2usize],
}
pub type IMAGE_RELOCATION = _IMAGE_RELOCATION;
pub type PIMAGE_RELOCATION = *mut IMAGE_RELOCATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_LINENUMBER {
    pub Type: _IMAGE_LINENUMBER__bindgen_ty_1,
    pub Linenumber: WORD,
}
#[repr(C, packed(2))]
#[derive(Copy, Clone)]
pub union _IMAGE_LINENUMBER__bindgen_ty_1 {
    pub SymbolTableIndex: DWORD,
    pub VirtualAddress: DWORD,
    _bindgen_union_align: [u16; 2usize],
}
pub type IMAGE_LINENUMBER = _IMAGE_LINENUMBER;
pub type PIMAGE_LINENUMBER = *mut IMAGE_LINENUMBER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_BASE_RELOCATION {
    pub VirtualAddress: DWORD,
    pub SizeOfBlock: DWORD,
}
pub type IMAGE_BASE_RELOCATION = _IMAGE_BASE_RELOCATION;
pub type PIMAGE_BASE_RELOCATION = *mut IMAGE_BASE_RELOCATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_ARCHIVE_MEMBER_HEADER {
    pub Name: [BYTE; 16usize],
    pub Date: [BYTE; 12usize],
    pub UserID: [BYTE; 6usize],
    pub GroupID: [BYTE; 6usize],
    pub Mode: [BYTE; 8usize],
    pub Size: [BYTE; 10usize],
    pub EndHeader: [BYTE; 2usize],
}
pub type IMAGE_ARCHIVE_MEMBER_HEADER = _IMAGE_ARCHIVE_MEMBER_HEADER;
pub type PIMAGE_ARCHIVE_MEMBER_HEADER = *mut _IMAGE_ARCHIVE_MEMBER_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_EXPORT_DIRECTORY {
    pub Characteristics: DWORD,
    pub TimeDateStamp: DWORD,
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
    pub Name: DWORD,
    pub Base: DWORD,
    pub NumberOfFunctions: DWORD,
    pub NumberOfNames: DWORD,
    pub AddressOfFunctions: DWORD,
    pub AddressOfNames: DWORD,
    pub AddressOfNameOrdinals: DWORD,
}
pub type IMAGE_EXPORT_DIRECTORY = _IMAGE_EXPORT_DIRECTORY;
pub type PIMAGE_EXPORT_DIRECTORY = *mut _IMAGE_EXPORT_DIRECTORY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_IMPORT_BY_NAME {
    pub Hint: WORD,
    pub Name: [CHAR; 1usize],
}
pub type IMAGE_IMPORT_BY_NAME = _IMAGE_IMPORT_BY_NAME;
pub type PIMAGE_IMPORT_BY_NAME = *mut _IMAGE_IMPORT_BY_NAME;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_THUNK_DATA64 {
    pub u1: _IMAGE_THUNK_DATA64__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_THUNK_DATA64__bindgen_ty_1 {
    pub ForwarderString: ULONGLONG,
    pub Function: ULONGLONG,
    pub Ordinal: ULONGLONG,
    pub AddressOfData: ULONGLONG,
    _bindgen_union_align: u64,
}
pub type IMAGE_THUNK_DATA64 = _IMAGE_THUNK_DATA64;
pub type PIMAGE_THUNK_DATA64 = *mut IMAGE_THUNK_DATA64;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_THUNK_DATA32 {
    pub u1: _IMAGE_THUNK_DATA32__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_THUNK_DATA32__bindgen_ty_1 {
    pub ForwarderString: DWORD,
    pub Function: DWORD,
    pub Ordinal: DWORD,
    pub AddressOfData: DWORD,
    _bindgen_union_align: u32,
}
pub type IMAGE_THUNK_DATA32 = _IMAGE_THUNK_DATA32;
pub type PIMAGE_THUNK_DATA32 = *mut IMAGE_THUNK_DATA32;
pub type PIMAGE_TLS_CALLBACK =
    ::std::option::Option<unsafe extern "C" fn(DllHandle: PVOID, Reason: DWORD, Reserved: PVOID)>;
#[repr(C, packed(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_TLS_DIRECTORY64 {
    pub StartAddressOfRawData: ULONGLONG,
    pub EndAddressOfRawData: ULONGLONG,
    pub AddressOfIndex: ULONGLONG,
    pub AddressOfCallBacks: ULONGLONG,
    pub SizeOfZeroFill: DWORD,
    pub Characteristics: DWORD,
}
pub type IMAGE_TLS_DIRECTORY64 = _IMAGE_TLS_DIRECTORY64;
pub type PIMAGE_TLS_DIRECTORY64 = *mut IMAGE_TLS_DIRECTORY64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_TLS_DIRECTORY32 {
    pub StartAddressOfRawData: DWORD,
    pub EndAddressOfRawData: DWORD,
    pub AddressOfIndex: DWORD,
    pub AddressOfCallBacks: DWORD,
    pub SizeOfZeroFill: DWORD,
    pub Characteristics: DWORD,
}
pub type IMAGE_TLS_DIRECTORY32 = _IMAGE_TLS_DIRECTORY32;
pub type PIMAGE_TLS_DIRECTORY32 = *mut IMAGE_TLS_DIRECTORY32;
pub type IMAGE_THUNK_DATA = IMAGE_THUNK_DATA64;
pub type PIMAGE_THUNK_DATA = PIMAGE_THUNK_DATA64;
pub type IMAGE_TLS_DIRECTORY = IMAGE_TLS_DIRECTORY64;
pub type PIMAGE_TLS_DIRECTORY = PIMAGE_TLS_DIRECTORY64;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_IMPORT_DESCRIPTOR {
    pub __bindgen_anon_1: _IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1,
    pub TimeDateStamp: DWORD,
    pub ForwarderChain: DWORD,
    pub Name: DWORD,
    pub FirstThunk: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1 {
    pub Characteristics: DWORD,
    pub OriginalFirstThunk: DWORD,
    _bindgen_union_align: u32,
}
pub type IMAGE_IMPORT_DESCRIPTOR = _IMAGE_IMPORT_DESCRIPTOR;
pub type PIMAGE_IMPORT_DESCRIPTOR = *mut IMAGE_IMPORT_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_BOUND_IMPORT_DESCRIPTOR {
    pub TimeDateStamp: DWORD,
    pub OffsetModuleName: WORD,
    pub NumberOfModuleForwarderRefs: WORD,
}
pub type IMAGE_BOUND_IMPORT_DESCRIPTOR = _IMAGE_BOUND_IMPORT_DESCRIPTOR;
pub type PIMAGE_BOUND_IMPORT_DESCRIPTOR = *mut _IMAGE_BOUND_IMPORT_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_BOUND_FORWARDER_REF {
    pub TimeDateStamp: DWORD,
    pub OffsetModuleName: WORD,
    pub Reserved: WORD,
}
pub type IMAGE_BOUND_FORWARDER_REF = _IMAGE_BOUND_FORWARDER_REF;
pub type PIMAGE_BOUND_FORWARDER_REF = *mut _IMAGE_BOUND_FORWARDER_REF;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_DELAYLOAD_DESCRIPTOR {
    pub Attributes: _IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1,
    pub DllNameRVA: DWORD,
    pub ModuleHandleRVA: DWORD,
    pub ImportAddressTableRVA: DWORD,
    pub ImportNameTableRVA: DWORD,
    pub BoundImportAddressTableRVA: DWORD,
    pub UnloadInformationTableRVA: DWORD,
    pub TimeDateStamp: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1 {
    pub AllAttributes: DWORD,
    pub __bindgen_anon_1: _IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn RvaBased(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_RvaBased(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedAttributes(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedAttributes(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        RvaBased: DWORD,
        ReservedAttributes: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let RvaBased: u32 = unsafe { ::std::mem::transmute(RvaBased) };
            RvaBased as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let ReservedAttributes: u32 = unsafe { ::std::mem::transmute(ReservedAttributes) };
            ReservedAttributes as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type IMAGE_DELAYLOAD_DESCRIPTOR = _IMAGE_DELAYLOAD_DESCRIPTOR;
pub type PIMAGE_DELAYLOAD_DESCRIPTOR = *mut _IMAGE_DELAYLOAD_DESCRIPTOR;
pub type PCIMAGE_DELAYLOAD_DESCRIPTOR = *const IMAGE_DELAYLOAD_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_RESOURCE_DIRECTORY {
    pub Characteristics: DWORD,
    pub TimeDateStamp: DWORD,
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
    pub NumberOfNamedEntries: WORD,
    pub NumberOfIdEntries: WORD,
}
pub type IMAGE_RESOURCE_DIRECTORY = _IMAGE_RESOURCE_DIRECTORY;
pub type PIMAGE_RESOURCE_DIRECTORY = *mut _IMAGE_RESOURCE_DIRECTORY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
    pub __bindgen_anon_1: _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1,
    pub __bindgen_anon_2: _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1 {
    pub __bindgen_anon_1: _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1__bindgen_ty_1,
    pub Name: DWORD,
    pub Id: WORD,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn NameOffset(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_NameOffset(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn NameIsString(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_NameIsString(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(31usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        NameOffset: DWORD,
        NameIsString: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 31u8, {
            let NameOffset: u32 = unsafe { ::std::mem::transmute(NameOffset) };
            NameOffset as u64
        });
        __bindgen_bitfield_unit.set(31usize, 1u8, {
            let NameIsString: u32 = unsafe { ::std::mem::transmute(NameIsString) };
            NameIsString as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2 {
    pub OffsetToData: DWORD,
    pub __bindgen_anon_1: _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2__bindgen_ty_1 {
    #[inline]
    pub fn OffsetToDirectory(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_OffsetToDirectory(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn DataIsDirectory(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_DataIsDirectory(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(31usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        OffsetToDirectory: DWORD,
        DataIsDirectory: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 31u8, {
            let OffsetToDirectory: u32 = unsafe { ::std::mem::transmute(OffsetToDirectory) };
            OffsetToDirectory as u64
        });
        __bindgen_bitfield_unit.set(31usize, 1u8, {
            let DataIsDirectory: u32 = unsafe { ::std::mem::transmute(DataIsDirectory) };
            DataIsDirectory as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type IMAGE_RESOURCE_DIRECTORY_ENTRY = _IMAGE_RESOURCE_DIRECTORY_ENTRY;
pub type PIMAGE_RESOURCE_DIRECTORY_ENTRY = *mut _IMAGE_RESOURCE_DIRECTORY_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_RESOURCE_DIRECTORY_STRING {
    pub Length: WORD,
    pub NameString: [CHAR; 1usize],
}
pub type IMAGE_RESOURCE_DIRECTORY_STRING = _IMAGE_RESOURCE_DIRECTORY_STRING;
pub type PIMAGE_RESOURCE_DIRECTORY_STRING = *mut _IMAGE_RESOURCE_DIRECTORY_STRING;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_RESOURCE_DIR_STRING_U {
    pub Length: WORD,
    pub NameString: [WCHAR; 1usize],
}
pub type IMAGE_RESOURCE_DIR_STRING_U = _IMAGE_RESOURCE_DIR_STRING_U;
pub type PIMAGE_RESOURCE_DIR_STRING_U = *mut _IMAGE_RESOURCE_DIR_STRING_U;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_RESOURCE_DATA_ENTRY {
    pub OffsetToData: DWORD,
    pub Size: DWORD,
    pub CodePage: DWORD,
    pub Reserved: DWORD,
}
pub type IMAGE_RESOURCE_DATA_ENTRY = _IMAGE_RESOURCE_DATA_ENTRY;
pub type PIMAGE_RESOURCE_DATA_ENTRY = *mut _IMAGE_RESOURCE_DATA_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMAGE_LOAD_CONFIG_DIRECTORY32 {
    pub Size: DWORD,
    pub TimeDateStamp: DWORD,
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
    pub GlobalFlagsClear: DWORD,
    pub GlobalFlagsSet: DWORD,
    pub CriticalSectionDefaultTimeout: DWORD,
    pub DeCommitFreeBlockThreshold: DWORD,
    pub DeCommitTotalFreeThreshold: DWORD,
    pub LockPrefixTable: DWORD,
    pub MaximumAllocationSize: DWORD,
    pub VirtualMemoryThreshold: DWORD,
    pub ProcessHeapFlags: DWORD,
    pub ProcessAffinityMask: DWORD,
    pub CSDVersion: WORD,
    pub Reserved1: WORD,
    pub EditList: DWORD,
    pub SecurityCookie: DWORD,
    pub SEHandlerTable: DWORD,
    pub SEHandlerCount: DWORD,
}
pub type PIMAGE_LOAD_CONFIG_DIRECTORY32 = *mut IMAGE_LOAD_CONFIG_DIRECTORY32;
#[repr(C, packed(4))]
#[derive(Debug, Copy, Clone)]
pub struct IMAGE_LOAD_CONFIG_DIRECTORY64 {
    pub Size: DWORD,
    pub TimeDateStamp: DWORD,
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
    pub GlobalFlagsClear: DWORD,
    pub GlobalFlagsSet: DWORD,
    pub CriticalSectionDefaultTimeout: DWORD,
    pub DeCommitFreeBlockThreshold: ULONGLONG,
    pub DeCommitTotalFreeThreshold: ULONGLONG,
    pub LockPrefixTable: ULONGLONG,
    pub MaximumAllocationSize: ULONGLONG,
    pub VirtualMemoryThreshold: ULONGLONG,
    pub ProcessAffinityMask: ULONGLONG,
    pub ProcessHeapFlags: DWORD,
    pub CSDVersion: WORD,
    pub Reserved1: WORD,
    pub EditList: ULONGLONG,
    pub SecurityCookie: ULONGLONG,
    pub SEHandlerTable: ULONGLONG,
    pub SEHandlerCount: ULONGLONG,
}
pub type PIMAGE_LOAD_CONFIG_DIRECTORY64 = *mut IMAGE_LOAD_CONFIG_DIRECTORY64;
pub type IMAGE_LOAD_CONFIG_DIRECTORY = IMAGE_LOAD_CONFIG_DIRECTORY64;
pub type PIMAGE_LOAD_CONFIG_DIRECTORY = PIMAGE_LOAD_CONFIG_DIRECTORY64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY {
    pub FuncStart: DWORD,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _IMAGE_CE_RUNTIME_FUNCTION_ENTRY {
    #[inline]
    pub fn PrologLen(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_PrologLen(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn FuncLen(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 22u8) as u32) }
    }
    #[inline]
    pub fn set_FuncLen(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 22u8, val as u64)
        }
    }
    #[inline]
    pub fn ThirtyTwoBit(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_ThirtyTwoBit(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(30usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ExceptionFlag(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_ExceptionFlag(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(31usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        PrologLen: DWORD,
        FuncLen: DWORD,
        ThirtyTwoBit: DWORD,
        ExceptionFlag: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let PrologLen: u32 = unsafe { ::std::mem::transmute(PrologLen) };
            PrologLen as u64
        });
        __bindgen_bitfield_unit.set(8usize, 22u8, {
            let FuncLen: u32 = unsafe { ::std::mem::transmute(FuncLen) };
            FuncLen as u64
        });
        __bindgen_bitfield_unit.set(30usize, 1u8, {
            let ThirtyTwoBit: u32 = unsafe { ::std::mem::transmute(ThirtyTwoBit) };
            ThirtyTwoBit as u64
        });
        __bindgen_bitfield_unit.set(31usize, 1u8, {
            let ExceptionFlag: u32 = unsafe { ::std::mem::transmute(ExceptionFlag) };
            ExceptionFlag as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type IMAGE_CE_RUNTIME_FUNCTION_ENTRY = _IMAGE_CE_RUNTIME_FUNCTION_ENTRY;
pub type PIMAGE_CE_RUNTIME_FUNCTION_ENTRY = *mut _IMAGE_CE_RUNTIME_FUNCTION_ENTRY;
#[repr(C, packed(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY {
    pub BeginAddress: ULONGLONG,
    pub EndAddress: ULONGLONG,
    pub ExceptionHandler: ULONGLONG,
    pub HandlerData: ULONGLONG,
    pub PrologEndAddress: ULONGLONG,
}
pub type IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY;
pub type PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = *mut _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY {
    pub BeginAddress: DWORD,
    pub EndAddress: DWORD,
    pub ExceptionHandler: DWORD,
    pub HandlerData: DWORD,
    pub PrologEndAddress: DWORD,
}
pub type IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;
pub type PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = *mut _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY {
    pub BeginAddress: DWORD,
    pub __bindgen_anon_1: _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1 {
    pub UnwindData: DWORD,
    pub __bindgen_anon_1: _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
}
impl _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn Flag(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_Flag(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn FunctionLength(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 11u8) as u32) }
    }
    #[inline]
    pub fn set_FunctionLength(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 11u8, val as u64)
        }
    }
    #[inline]
    pub fn Ret(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_Ret(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn H(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_H(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reg(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u32) }
    }
    #[inline]
    pub fn set_Reg(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn R(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_R(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(19usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn L(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_L(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(20usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn C(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_C(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(21usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn StackAdjust(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 10u8) as u32) }
    }
    #[inline]
    pub fn set_StackAdjust(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(22usize, 10u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Flag: DWORD,
        FunctionLength: DWORD,
        Ret: DWORD,
        H: DWORD,
        Reg: DWORD,
        R: DWORD,
        L: DWORD,
        C: DWORD,
        StackAdjust: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 2u8, {
            let Flag: u32 = unsafe { ::std::mem::transmute(Flag) };
            Flag as u64
        });
        __bindgen_bitfield_unit.set(2usize, 11u8, {
            let FunctionLength: u32 = unsafe { ::std::mem::transmute(FunctionLength) };
            FunctionLength as u64
        });
        __bindgen_bitfield_unit.set(13usize, 2u8, {
            let Ret: u32 = unsafe { ::std::mem::transmute(Ret) };
            Ret as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let H: u32 = unsafe { ::std::mem::transmute(H) };
            H as u64
        });
        __bindgen_bitfield_unit.set(16usize, 3u8, {
            let Reg: u32 = unsafe { ::std::mem::transmute(Reg) };
            Reg as u64
        });
        __bindgen_bitfield_unit.set(19usize, 1u8, {
            let R: u32 = unsafe { ::std::mem::transmute(R) };
            R as u64
        });
        __bindgen_bitfield_unit.set(20usize, 1u8, {
            let L: u32 = unsafe { ::std::mem::transmute(L) };
            L as u64
        });
        __bindgen_bitfield_unit.set(21usize, 1u8, {
            let C: u32 = unsafe { ::std::mem::transmute(C) };
            C as u64
        });
        __bindgen_bitfield_unit.set(22usize, 10u8, {
            let StackAdjust: u32 = unsafe { ::std::mem::transmute(StackAdjust) };
            StackAdjust as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type IMAGE_ARM_RUNTIME_FUNCTION_ENTRY = _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY;
pub type PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY = *mut _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
    pub BeginAddress: DWORD,
    pub __bindgen_anon_1: _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1 {
    pub UnwindData: DWORD,
    pub __bindgen_anon_1: _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
}
impl _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn Flag(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_Flag(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn FunctionLength(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 11u8) as u32) }
    }
    #[inline]
    pub fn set_FunctionLength(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 11u8, val as u64)
        }
    }
    #[inline]
    pub fn RegF(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u32) }
    }
    #[inline]
    pub fn set_RegF(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn RegI(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_RegI(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn H(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_H(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(20usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn CR(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_CR(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(21usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn FrameSize(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 9u8) as u32) }
    }
    #[inline]
    pub fn set_FrameSize(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(23usize, 9u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Flag: DWORD,
        FunctionLength: DWORD,
        RegF: DWORD,
        RegI: DWORD,
        H: DWORD,
        CR: DWORD,
        FrameSize: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 2u8, {
            let Flag: u32 = unsafe { ::std::mem::transmute(Flag) };
            Flag as u64
        });
        __bindgen_bitfield_unit.set(2usize, 11u8, {
            let FunctionLength: u32 = unsafe { ::std::mem::transmute(FunctionLength) };
            FunctionLength as u64
        });
        __bindgen_bitfield_unit.set(13usize, 3u8, {
            let RegF: u32 = unsafe { ::std::mem::transmute(RegF) };
            RegF as u64
        });
        __bindgen_bitfield_unit.set(16usize, 4u8, {
            let RegI: u32 = unsafe { ::std::mem::transmute(RegI) };
            RegI as u64
        });
        __bindgen_bitfield_unit.set(20usize, 1u8, {
            let H: u32 = unsafe { ::std::mem::transmute(H) };
            H as u64
        });
        __bindgen_bitfield_unit.set(21usize, 2u8, {
            let CR: u32 = unsafe { ::std::mem::transmute(CR) };
            CR as u64
        });
        __bindgen_bitfield_unit.set(23usize, 9u8, {
            let FrameSize: u32 = unsafe { ::std::mem::transmute(FrameSize) };
            FrameSize as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY;
pub type PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY = *mut _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_RUNTIME_FUNCTION_ENTRY {
    pub BeginAddress: DWORD,
    pub EndAddress: DWORD,
    pub __bindgen_anon_1: _IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1 {
    pub UnwindInfoAddress: DWORD,
    pub UnwindData: DWORD,
    _bindgen_union_align: u32,
}
pub type _PIMAGE_RUNTIME_FUNCTION_ENTRY = *mut _IMAGE_RUNTIME_FUNCTION_ENTRY;
pub type IMAGE_IA64_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY;
pub type PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY = _PIMAGE_RUNTIME_FUNCTION_ENTRY;
pub type IMAGE_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY;
pub type PIMAGE_RUNTIME_FUNCTION_ENTRY = _PIMAGE_RUNTIME_FUNCTION_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DEBUG_DIRECTORY {
    pub Characteristics: DWORD,
    pub TimeDateStamp: DWORD,
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
    pub Type: DWORD,
    pub SizeOfData: DWORD,
    pub AddressOfRawData: DWORD,
    pub PointerToRawData: DWORD,
}
pub type IMAGE_DEBUG_DIRECTORY = _IMAGE_DEBUG_DIRECTORY;
pub type PIMAGE_DEBUG_DIRECTORY = *mut _IMAGE_DEBUG_DIRECTORY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_COFF_SYMBOLS_HEADER {
    pub NumberOfSymbols: DWORD,
    pub LvaToFirstSymbol: DWORD,
    pub NumberOfLinenumbers: DWORD,
    pub LvaToFirstLinenumber: DWORD,
    pub RvaToFirstByteOfCode: DWORD,
    pub RvaToLastByteOfCode: DWORD,
    pub RvaToFirstByteOfData: DWORD,
    pub RvaToLastByteOfData: DWORD,
}
pub type IMAGE_COFF_SYMBOLS_HEADER = _IMAGE_COFF_SYMBOLS_HEADER;
pub type PIMAGE_COFF_SYMBOLS_HEADER = *mut _IMAGE_COFF_SYMBOLS_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FPO_DATA {
    pub ulOffStart: DWORD,
    pub cbProcSize: DWORD,
    pub cdwLocals: DWORD,
    pub cdwParams: WORD,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u8>,
}
impl _FPO_DATA {
    #[inline]
    pub fn cbProlog(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u16) }
    }
    #[inline]
    pub fn set_cbProlog(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn cbRegs(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u16) }
    }
    #[inline]
    pub fn set_cbRegs(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn fHasSEH(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fHasSEH(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(11usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fUseBP(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fUseBP(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn reserved(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn cbFrame(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) }
    }
    #[inline]
    pub fn set_cbFrame(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        cbProlog: WORD,
        cbRegs: WORD,
        fHasSEH: WORD,
        fUseBP: WORD,
        reserved: WORD,
        cbFrame: WORD,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let cbProlog: u16 = unsafe { ::std::mem::transmute(cbProlog) };
            cbProlog as u64
        });
        __bindgen_bitfield_unit.set(8usize, 3u8, {
            let cbRegs: u16 = unsafe { ::std::mem::transmute(cbRegs) };
            cbRegs as u64
        });
        __bindgen_bitfield_unit.set(11usize, 1u8, {
            let fHasSEH: u16 = unsafe { ::std::mem::transmute(fHasSEH) };
            fHasSEH as u64
        });
        __bindgen_bitfield_unit.set(12usize, 1u8, {
            let fUseBP: u16 = unsafe { ::std::mem::transmute(fUseBP) };
            fUseBP as u64
        });
        __bindgen_bitfield_unit.set(13usize, 1u8, {
            let reserved: u16 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit.set(14usize, 2u8, {
            let cbFrame: u16 = unsafe { ::std::mem::transmute(cbFrame) };
            cbFrame as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type FPO_DATA = _FPO_DATA;
pub type PFPO_DATA = *mut _FPO_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DEBUG_MISC {
    pub DataType: DWORD,
    pub Length: DWORD,
    pub Unicode: BOOLEAN,
    pub Reserved: [BYTE; 3usize],
    pub Data: [BYTE; 1usize],
}
pub type IMAGE_DEBUG_MISC = _IMAGE_DEBUG_MISC;
pub type PIMAGE_DEBUG_MISC = *mut _IMAGE_DEBUG_MISC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_FUNCTION_ENTRY {
    pub StartingAddress: DWORD,
    pub EndingAddress: DWORD,
    pub EndOfPrologue: DWORD,
}
pub type IMAGE_FUNCTION_ENTRY = _IMAGE_FUNCTION_ENTRY;
pub type PIMAGE_FUNCTION_ENTRY = *mut _IMAGE_FUNCTION_ENTRY;
#[repr(C, packed(4))]
#[derive(Copy, Clone)]
pub struct _IMAGE_FUNCTION_ENTRY64 {
    pub StartingAddress: ULONGLONG,
    pub EndingAddress: ULONGLONG,
    pub __bindgen_anon_1: _IMAGE_FUNCTION_ENTRY64__bindgen_ty_1,
}
#[repr(C, packed(4))]
#[derive(Copy, Clone)]
pub union _IMAGE_FUNCTION_ENTRY64__bindgen_ty_1 {
    pub EndOfPrologue: ULONGLONG,
    pub UnwindInfoAddress: ULONGLONG,
    _bindgen_union_align: [u32; 2usize],
}
pub type IMAGE_FUNCTION_ENTRY64 = _IMAGE_FUNCTION_ENTRY64;
pub type PIMAGE_FUNCTION_ENTRY64 = *mut _IMAGE_FUNCTION_ENTRY64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_SEPARATE_DEBUG_HEADER {
    pub Signature: WORD,
    pub Flags: WORD,
    pub Machine: WORD,
    pub Characteristics: WORD,
    pub TimeDateStamp: DWORD,
    pub CheckSum: DWORD,
    pub ImageBase: DWORD,
    pub SizeOfImage: DWORD,
    pub NumberOfSections: DWORD,
    pub ExportedNamesSize: DWORD,
    pub DebugDirectorySize: DWORD,
    pub SectionAlignment: DWORD,
    pub Reserved: [DWORD; 2usize],
}
pub type IMAGE_SEPARATE_DEBUG_HEADER = _IMAGE_SEPARATE_DEBUG_HEADER;
pub type PIMAGE_SEPARATE_DEBUG_HEADER = *mut _IMAGE_SEPARATE_DEBUG_HEADER;
#[repr(C, packed(4))]
#[derive(Debug, Copy, Clone)]
pub struct _NON_PAGED_DEBUG_INFO {
    pub Signature: WORD,
    pub Flags: WORD,
    pub Size: DWORD,
    pub Machine: WORD,
    pub Characteristics: WORD,
    pub TimeDateStamp: DWORD,
    pub CheckSum: DWORD,
    pub SizeOfImage: DWORD,
    pub ImageBase: ULONGLONG,
}
pub type NON_PAGED_DEBUG_INFO = _NON_PAGED_DEBUG_INFO;
pub type PNON_PAGED_DEBUG_INFO = *mut _NON_PAGED_DEBUG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ImageArchitectureHeader {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
    pub FirstEntryRVA: DWORD,
}
impl _ImageArchitectureHeader {
    #[inline]
    pub fn AmaskValue(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AmaskValue(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Adummy1(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 7u8) as u32) }
    }
    #[inline]
    pub fn set_Adummy1(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 7u8, val as u64)
        }
    }
    #[inline]
    pub fn AmaskShift(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_AmaskShift(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn Adummy2(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_Adummy2(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        AmaskValue: ::std::os::raw::c_uint,
        Adummy1: ::std::os::raw::c_int,
        AmaskShift: ::std::os::raw::c_uint,
        Adummy2: ::std::os::raw::c_int,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let AmaskValue: u32 = unsafe { ::std::mem::transmute(AmaskValue) };
            AmaskValue as u64
        });
        __bindgen_bitfield_unit.set(1usize, 7u8, {
            let Adummy1: u32 = unsafe { ::std::mem::transmute(Adummy1) };
            Adummy1 as u64
        });
        __bindgen_bitfield_unit.set(8usize, 8u8, {
            let AmaskShift: u32 = unsafe { ::std::mem::transmute(AmaskShift) };
            AmaskShift as u64
        });
        __bindgen_bitfield_unit.set(16usize, 16u8, {
            let Adummy2: u32 = unsafe { ::std::mem::transmute(Adummy2) };
            Adummy2 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type IMAGE_ARCHITECTURE_HEADER = _ImageArchitectureHeader;
pub type PIMAGE_ARCHITECTURE_HEADER = *mut _ImageArchitectureHeader;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ImageArchitectureEntry {
    pub FixupInstRVA: DWORD,
    pub NewInst: DWORD,
}
pub type IMAGE_ARCHITECTURE_ENTRY = _ImageArchitectureEntry;
pub type PIMAGE_ARCHITECTURE_ENTRY = *mut _ImageArchitectureEntry;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct IMPORT_OBJECT_HEADER {
    pub Sig1: WORD,
    pub Sig2: WORD,
    pub Version: WORD,
    pub Machine: WORD,
    pub TimeDateStamp: DWORD,
    pub SizeOfData: DWORD,
    pub __bindgen_anon_1: IMPORT_OBJECT_HEADER__bindgen_ty_1,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u16>,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union IMPORT_OBJECT_HEADER__bindgen_ty_1 {
    pub Ordinal: WORD,
    pub Hint: WORD,
    _bindgen_union_align: u16,
}
impl IMPORT_OBJECT_HEADER {
    #[inline]
    pub fn Type(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u16) }
    }
    #[inline]
    pub fn set_Type(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn NameType(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u16) }
    }
    #[inline]
    pub fn set_NameType(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 11u8) as u16) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 11u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Type: WORD,
        NameType: WORD,
        Reserved: WORD,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 2u8, {
            let Type: u16 = unsafe { ::std::mem::transmute(Type) };
            Type as u64
        });
        __bindgen_bitfield_unit.set(2usize, 3u8, {
            let NameType: u16 = unsafe { ::std::mem::transmute(NameType) };
            NameType as u64
        });
        __bindgen_bitfield_unit.set(5usize, 11u8, {
            let Reserved: u16 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub const IMPORT_OBJECT_TYPE_IMPORT_OBJECT_CODE: IMPORT_OBJECT_TYPE = 0;
pub const IMPORT_OBJECT_TYPE_IMPORT_OBJECT_DATA: IMPORT_OBJECT_TYPE = 1;
pub const IMPORT_OBJECT_TYPE_IMPORT_OBJECT_CONST: IMPORT_OBJECT_TYPE = 2;
pub type IMPORT_OBJECT_TYPE = u32;
pub const IMPORT_OBJECT_NAME_TYPE_IMPORT_OBJECT_ORDINAL: IMPORT_OBJECT_NAME_TYPE = 0;
pub const IMPORT_OBJECT_NAME_TYPE_IMPORT_OBJECT_NAME: IMPORT_OBJECT_NAME_TYPE = 1;
pub const IMPORT_OBJECT_NAME_TYPE_IMPORT_OBJECT_NAME_NO_PREFIX: IMPORT_OBJECT_NAME_TYPE = 2;
pub const IMPORT_OBJECT_NAME_TYPE_IMPORT_OBJECT_NAME_UNDECORATE: IMPORT_OBJECT_NAME_TYPE = 3;
pub type IMPORT_OBJECT_NAME_TYPE = u32;
pub const ReplacesCorHdrNumericDefines_COMIMAGE_FLAGS_ILONLY: ReplacesCorHdrNumericDefines = 1;
pub const ReplacesCorHdrNumericDefines_COMIMAGE_FLAGS_32BITREQUIRED: ReplacesCorHdrNumericDefines =
    2;
pub const ReplacesCorHdrNumericDefines_COMIMAGE_FLAGS_IL_LIBRARY: ReplacesCorHdrNumericDefines = 4;
pub const ReplacesCorHdrNumericDefines_COMIMAGE_FLAGS_STRONGNAMESIGNED:
    ReplacesCorHdrNumericDefines = 8;
pub const ReplacesCorHdrNumericDefines_COMIMAGE_FLAGS_TRACKDEBUGDATA: ReplacesCorHdrNumericDefines =
    65536;
pub const ReplacesCorHdrNumericDefines_COR_VERSION_MAJOR_V2: ReplacesCorHdrNumericDefines = 2;
pub const ReplacesCorHdrNumericDefines_COR_VERSION_MAJOR: ReplacesCorHdrNumericDefines = 2;
pub const ReplacesCorHdrNumericDefines_COR_VERSION_MINOR: ReplacesCorHdrNumericDefines = 0;
pub const ReplacesCorHdrNumericDefines_COR_DELETED_NAME_LENGTH: ReplacesCorHdrNumericDefines = 8;
pub const ReplacesCorHdrNumericDefines_COR_VTABLEGAP_NAME_LENGTH: ReplacesCorHdrNumericDefines = 8;
pub const ReplacesCorHdrNumericDefines_NATIVE_TYPE_MAX_CB: ReplacesCorHdrNumericDefines = 1;
pub const ReplacesCorHdrNumericDefines_COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE:
    ReplacesCorHdrNumericDefines = 255;
pub const ReplacesCorHdrNumericDefines_IMAGE_COR_MIH_METHODRVA: ReplacesCorHdrNumericDefines = 1;
pub const ReplacesCorHdrNumericDefines_IMAGE_COR_MIH_EHRVA: ReplacesCorHdrNumericDefines = 2;
pub const ReplacesCorHdrNumericDefines_IMAGE_COR_MIH_BASICBLOCK: ReplacesCorHdrNumericDefines = 8;
pub const ReplacesCorHdrNumericDefines_COR_VTABLE_32BIT: ReplacesCorHdrNumericDefines = 1;
pub const ReplacesCorHdrNumericDefines_COR_VTABLE_64BIT: ReplacesCorHdrNumericDefines = 2;
pub const ReplacesCorHdrNumericDefines_COR_VTABLE_FROM_UNMANAGED: ReplacesCorHdrNumericDefines = 4;
pub const ReplacesCorHdrNumericDefines_COR_VTABLE_CALL_MOST_DERIVED: ReplacesCorHdrNumericDefines =
    16;
pub const ReplacesCorHdrNumericDefines_IMAGE_COR_EATJ_THUNK_SIZE: ReplacesCorHdrNumericDefines = 32;
pub const ReplacesCorHdrNumericDefines_MAX_CLASS_NAME: ReplacesCorHdrNumericDefines = 1024;
pub const ReplacesCorHdrNumericDefines_MAX_PACKAGE_NAME: ReplacesCorHdrNumericDefines = 1024;
pub type ReplacesCorHdrNumericDefines = u32;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct IMAGE_COR20_HEADER {
    pub cb: DWORD,
    pub MajorRuntimeVersion: WORD,
    pub MinorRuntimeVersion: WORD,
    pub MetaData: IMAGE_DATA_DIRECTORY,
    pub Flags: DWORD,
    pub __bindgen_anon_1: IMAGE_COR20_HEADER__bindgen_ty_1,
    pub Resources: IMAGE_DATA_DIRECTORY,
    pub StrongNameSignature: IMAGE_DATA_DIRECTORY,
    pub CodeManagerTable: IMAGE_DATA_DIRECTORY,
    pub VTableFixups: IMAGE_DATA_DIRECTORY,
    pub ExportAddressTableJumps: IMAGE_DATA_DIRECTORY,
    pub ManagedNativeHeader: IMAGE_DATA_DIRECTORY,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union IMAGE_COR20_HEADER__bindgen_ty_1 {
    pub EntryPointToken: DWORD,
    pub EntryPointRVA: DWORD,
    _bindgen_union_align: u32,
}
pub type PIMAGE_COR20_HEADER = *mut IMAGE_COR20_HEADER;
extern "C" {
    pub fn RtlCaptureStackBackTrace(
        FramesToSkip: DWORD,
        FramesToCapture: DWORD,
        BackTrace: *mut PVOID,
        BackTraceHash: PDWORD,
    ) -> WORD;
}
extern "C" {
    pub fn RtlCaptureContext(ContextRecord: PCONTEXT);
}
extern "C" {
    pub fn RtlCompareMemory(
        Source1: *const ::std::os::raw::c_void,
        Source2: *const ::std::os::raw::c_void,
        Length: SIZE_T,
    ) -> SIZE_T;
}
extern "C" {
    pub fn RtlAddFunctionTable(
        FunctionTable: PRUNTIME_FUNCTION,
        EntryCount: DWORD,
        BaseAddress: DWORD64,
    ) -> BOOLEAN;
}
extern "C" {
    pub fn RtlDeleteFunctionTable(FunctionTable: PRUNTIME_FUNCTION) -> BOOLEAN;
}
extern "C" {
    pub fn RtlInstallFunctionTableCallback(
        TableIdentifier: DWORD64,
        BaseAddress: DWORD64,
        Length: DWORD,
        Callback: PGET_RUNTIME_FUNCTION_CALLBACK,
        Context: PVOID,
        OutOfProcessCallbackDll: PCWSTR,
    ) -> BOOLEAN;
}
extern "C" {
    pub fn RtlRestoreContext(ContextRecord: PCONTEXT, ExceptionRecord: *mut _EXCEPTION_RECORD);
}
extern "C" {
    pub fn RtlVirtualUnwind(
        HandlerType: DWORD,
        ImageBase: DWORD64,
        ControlPc: DWORD64,
        FunctionEntry: PRUNTIME_FUNCTION,
        ContextRecord: PCONTEXT,
        HandlerData: *mut PVOID,
        EstablisherFrame: PDWORD64,
        ContextPointers: PKNONVOLATILE_CONTEXT_POINTERS,
    ) -> PEXCEPTION_ROUTINE;
}
extern "C" {
    pub fn RtlUnwind(
        TargetFrame: PVOID,
        TargetIp: PVOID,
        ExceptionRecord: PEXCEPTION_RECORD,
        ReturnValue: PVOID,
    );
}
extern "C" {
    pub fn RtlPcToFileHeader(PcValue: PVOID, BaseOfImage: *mut PVOID) -> PVOID;
}
extern "C" {
    pub fn RtlLookupFunctionEntry(
        ControlPc: DWORD64,
        ImageBase: PDWORD64,
        HistoryTable: PUNWIND_HISTORY_TABLE,
    ) -> PRUNTIME_FUNCTION;
}
extern "C" {
    pub fn RtlUnwindEx(
        TargetFrame: PVOID,
        TargetIp: PVOID,
        ExceptionRecord: PEXCEPTION_RECORD,
        ReturnValue: PVOID,
        ContextRecord: PCONTEXT,
        HistoryTable: PUNWIND_HISTORY_TABLE,
    );
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct _SLIST_ENTRY {
    pub Next: *mut _SLIST_ENTRY,
    pub __bindgen_padding_0: u64,
}
pub type SLIST_ENTRY = _SLIST_ENTRY;
pub type PSLIST_ENTRY = *mut _SLIST_ENTRY;
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union _SLIST_HEADER {
    pub __bindgen_anon_1: _SLIST_HEADER__bindgen_ty_1,
    pub Header8: _SLIST_HEADER__bindgen_ty_2,
    pub HeaderX64: _SLIST_HEADER__bindgen_ty_3,
    _bindgen_union_align: u128,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SLIST_HEADER__bindgen_ty_1 {
    pub Alignment: ULONGLONG,
    pub Region: ULONGLONG,
}
#[repr(C)]
#[repr(align(8))]
#[derive(Debug, Copy, Clone)]
pub struct _SLIST_HEADER__bindgen_ty_2 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize], u64>,
}
impl _SLIST_HEADER__bindgen_ty_2 {
    #[inline]
    pub fn Depth(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u64) }
    }
    #[inline]
    pub fn set_Depth(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn Sequence(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 9u8) as u64) }
    }
    #[inline]
    pub fn set_Sequence(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 9u8, val as u64)
        }
    }
    #[inline]
    pub fn NextEntry(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(25usize, 39u8) as u64) }
    }
    #[inline]
    pub fn set_NextEntry(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(25usize, 39u8, val as u64)
        }
    }
    #[inline]
    pub fn HeaderType(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(64usize, 1u8) as u64) }
    }
    #[inline]
    pub fn set_HeaderType(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(64usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Init(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(65usize, 1u8) as u64) }
    }
    #[inline]
    pub fn set_Init(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(65usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(66usize, 59u8) as u64) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(66usize, 59u8, val as u64)
        }
    }
    #[inline]
    pub fn Region(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(125usize, 3u8) as u64) }
    }
    #[inline]
    pub fn set_Region(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(125usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Depth: ULONGLONG,
        Sequence: ULONGLONG,
        NextEntry: ULONGLONG,
        HeaderType: ULONGLONG,
        Init: ULONGLONG,
        Reserved: ULONGLONG,
        Region: ULONGLONG,
    ) -> __BindgenBitfieldUnit<[u8; 16usize], u64> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize], u64> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 16u8, {
            let Depth: u64 = unsafe { ::std::mem::transmute(Depth) };
            Depth as u64
        });
        __bindgen_bitfield_unit.set(16usize, 9u8, {
            let Sequence: u64 = unsafe { ::std::mem::transmute(Sequence) };
            Sequence as u64
        });
        __bindgen_bitfield_unit.set(25usize, 39u8, {
            let NextEntry: u64 = unsafe { ::std::mem::transmute(NextEntry) };
            NextEntry as u64
        });
        __bindgen_bitfield_unit.set(64usize, 1u8, {
            let HeaderType: u64 = unsafe { ::std::mem::transmute(HeaderType) };
            HeaderType as u64
        });
        __bindgen_bitfield_unit.set(65usize, 1u8, {
            let Init: u64 = unsafe { ::std::mem::transmute(Init) };
            Init as u64
        });
        __bindgen_bitfield_unit.set(66usize, 59u8, {
            let Reserved: u64 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit.set(125usize, 3u8, {
            let Region: u64 = unsafe { ::std::mem::transmute(Region) };
            Region as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[repr(align(8))]
#[derive(Debug, Copy, Clone)]
pub struct _SLIST_HEADER__bindgen_ty_3 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize], u64>,
}
impl _SLIST_HEADER__bindgen_ty_3 {
    #[inline]
    pub fn Depth(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u64) }
    }
    #[inline]
    pub fn set_Depth(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn Sequence(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 48u8) as u64) }
    }
    #[inline]
    pub fn set_Sequence(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 48u8, val as u64)
        }
    }
    #[inline]
    pub fn HeaderType(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(64usize, 1u8) as u64) }
    }
    #[inline]
    pub fn set_HeaderType(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(64usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(65usize, 3u8) as u64) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(65usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn NextEntry(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(68usize, 60u8) as u64) }
    }
    #[inline]
    pub fn set_NextEntry(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(68usize, 60u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Depth: ULONGLONG,
        Sequence: ULONGLONG,
        HeaderType: ULONGLONG,
        Reserved: ULONGLONG,
        NextEntry: ULONGLONG,
    ) -> __BindgenBitfieldUnit<[u8; 16usize], u64> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize], u64> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 16u8, {
            let Depth: u64 = unsafe { ::std::mem::transmute(Depth) };
            Depth as u64
        });
        __bindgen_bitfield_unit.set(16usize, 48u8, {
            let Sequence: u64 = unsafe { ::std::mem::transmute(Sequence) };
            Sequence as u64
        });
        __bindgen_bitfield_unit.set(64usize, 1u8, {
            let HeaderType: u64 = unsafe { ::std::mem::transmute(HeaderType) };
            HeaderType as u64
        });
        __bindgen_bitfield_unit.set(65usize, 3u8, {
            let Reserved: u64 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit.set(68usize, 60u8, {
            let NextEntry: u64 = unsafe { ::std::mem::transmute(NextEntry) };
            NextEntry as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type SLIST_HEADER = _SLIST_HEADER;
pub type PSLIST_HEADER = *mut _SLIST_HEADER;
extern "C" {
    pub fn RtlInitializeSListHead(ListHead: PSLIST_HEADER);
}
extern "C" {
    pub fn RtlFirstEntrySList(ListHead: *const SLIST_HEADER) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn RtlInterlockedPopEntrySList(ListHead: PSLIST_HEADER) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn RtlInterlockedPushEntrySList(
        ListHead: PSLIST_HEADER,
        ListEntry: PSLIST_ENTRY,
    ) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn RtlInterlockedPushListSListEx(
        ListHead: PSLIST_HEADER,
        List: PSLIST_ENTRY,
        ListEnd: PSLIST_ENTRY,
        Count: DWORD,
    ) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn RtlInterlockedFlushSList(ListHead: PSLIST_HEADER) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn RtlQueryDepthSList(ListHead: PSLIST_HEADER) -> WORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RTL_RUN_ONCE {
    pub Ptr: PVOID,
}
pub type RTL_RUN_ONCE = _RTL_RUN_ONCE;
pub type PRTL_RUN_ONCE = *mut _RTL_RUN_ONCE;
pub type PRTL_RUN_ONCE_INIT_FN = ::std::option::Option<
    unsafe extern "C" fn(arg1: PRTL_RUN_ONCE, arg2: PVOID, arg3: *mut PVOID) -> DWORD,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RTL_BARRIER {
    pub Reserved1: DWORD,
    pub Reserved2: DWORD,
    pub Reserved3: [ULONG_PTR; 2usize],
    pub Reserved4: DWORD,
    pub Reserved5: DWORD,
}
pub type RTL_BARRIER = _RTL_BARRIER;
pub type PRTL_BARRIER = *mut _RTL_BARRIER;
extern "C" {
    pub fn RtlSecureZeroMemory(ptr: PVOID, cnt: SIZE_T) -> PVOID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MESSAGE_RESOURCE_ENTRY {
    pub Length: WORD,
    pub Flags: WORD,
    pub Text: [BYTE; 1usize],
}
pub type MESSAGE_RESOURCE_ENTRY = _MESSAGE_RESOURCE_ENTRY;
pub type PMESSAGE_RESOURCE_ENTRY = *mut _MESSAGE_RESOURCE_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MESSAGE_RESOURCE_BLOCK {
    pub LowId: DWORD,
    pub HighId: DWORD,
    pub OffsetToEntries: DWORD,
}
pub type MESSAGE_RESOURCE_BLOCK = _MESSAGE_RESOURCE_BLOCK;
pub type PMESSAGE_RESOURCE_BLOCK = *mut _MESSAGE_RESOURCE_BLOCK;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MESSAGE_RESOURCE_DATA {
    pub NumberOfBlocks: DWORD,
    pub Blocks: [MESSAGE_RESOURCE_BLOCK; 1usize],
}
pub type MESSAGE_RESOURCE_DATA = _MESSAGE_RESOURCE_DATA;
pub type PMESSAGE_RESOURCE_DATA = *mut _MESSAGE_RESOURCE_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _OSVERSIONINFOA {
    pub dwOSVersionInfoSize: DWORD,
    pub dwMajorVersion: DWORD,
    pub dwMinorVersion: DWORD,
    pub dwBuildNumber: DWORD,
    pub dwPlatformId: DWORD,
    pub szCSDVersion: [CHAR; 128usize],
}
pub type OSVERSIONINFOA = _OSVERSIONINFOA;
pub type POSVERSIONINFOA = *mut _OSVERSIONINFOA;
pub type LPOSVERSIONINFOA = *mut _OSVERSIONINFOA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _OSVERSIONINFOW {
    pub dwOSVersionInfoSize: DWORD,
    pub dwMajorVersion: DWORD,
    pub dwMinorVersion: DWORD,
    pub dwBuildNumber: DWORD,
    pub dwPlatformId: DWORD,
    pub szCSDVersion: [WCHAR; 128usize],
}
pub type OSVERSIONINFOW = _OSVERSIONINFOW;
pub type POSVERSIONINFOW = *mut _OSVERSIONINFOW;
pub type LPOSVERSIONINFOW = *mut _OSVERSIONINFOW;
pub type RTL_OSVERSIONINFOW = _OSVERSIONINFOW;
pub type PRTL_OSVERSIONINFOW = *mut _OSVERSIONINFOW;
pub type OSVERSIONINFO = OSVERSIONINFOA;
pub type POSVERSIONINFO = POSVERSIONINFOA;
pub type LPOSVERSIONINFO = LPOSVERSIONINFOA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _OSVERSIONINFOEXA {
    pub dwOSVersionInfoSize: DWORD,
    pub dwMajorVersion: DWORD,
    pub dwMinorVersion: DWORD,
    pub dwBuildNumber: DWORD,
    pub dwPlatformId: DWORD,
    pub szCSDVersion: [CHAR; 128usize],
    pub wServicePackMajor: WORD,
    pub wServicePackMinor: WORD,
    pub wSuiteMask: WORD,
    pub wProductType: BYTE,
    pub wReserved: BYTE,
}
pub type OSVERSIONINFOEXA = _OSVERSIONINFOEXA;
pub type POSVERSIONINFOEXA = *mut _OSVERSIONINFOEXA;
pub type LPOSVERSIONINFOEXA = *mut _OSVERSIONINFOEXA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _OSVERSIONINFOEXW {
    pub dwOSVersionInfoSize: DWORD,
    pub dwMajorVersion: DWORD,
    pub dwMinorVersion: DWORD,
    pub dwBuildNumber: DWORD,
    pub dwPlatformId: DWORD,
    pub szCSDVersion: [WCHAR; 128usize],
    pub wServicePackMajor: WORD,
    pub wServicePackMinor: WORD,
    pub wSuiteMask: WORD,
    pub wProductType: BYTE,
    pub wReserved: BYTE,
}
pub type OSVERSIONINFOEXW = _OSVERSIONINFOEXW;
pub type POSVERSIONINFOEXW = *mut _OSVERSIONINFOEXW;
pub type LPOSVERSIONINFOEXW = *mut _OSVERSIONINFOEXW;
pub type RTL_OSVERSIONINFOEXW = _OSVERSIONINFOEXW;
pub type PRTL_OSVERSIONINFOEXW = *mut _OSVERSIONINFOEXW;
pub type OSVERSIONINFOEX = OSVERSIONINFOEXA;
pub type POSVERSIONINFOEX = POSVERSIONINFOEXA;
pub type LPOSVERSIONINFOEX = LPOSVERSIONINFOEXA;
extern "C" {
    pub fn VerSetConditionMask(
        ConditionMask: ULONGLONG,
        TypeMask: DWORD,
        Condition: BYTE,
    ) -> ULONGLONG;
}
pub const _RTL_UMS_THREAD_INFO_CLASS_UmsThreadInvalidInfoClass: _RTL_UMS_THREAD_INFO_CLASS = 0;
pub const _RTL_UMS_THREAD_INFO_CLASS_UmsThreadUserContext: _RTL_UMS_THREAD_INFO_CLASS = 1;
pub const _RTL_UMS_THREAD_INFO_CLASS_UmsThreadPriority: _RTL_UMS_THREAD_INFO_CLASS = 2;
pub const _RTL_UMS_THREAD_INFO_CLASS_UmsThreadAffinity: _RTL_UMS_THREAD_INFO_CLASS = 3;
pub const _RTL_UMS_THREAD_INFO_CLASS_UmsThreadTeb: _RTL_UMS_THREAD_INFO_CLASS = 4;
pub const _RTL_UMS_THREAD_INFO_CLASS_UmsThreadIsSuspended: _RTL_UMS_THREAD_INFO_CLASS = 5;
pub const _RTL_UMS_THREAD_INFO_CLASS_UmsThreadIsTerminated: _RTL_UMS_THREAD_INFO_CLASS = 6;
pub const _RTL_UMS_THREAD_INFO_CLASS_UmsThreadMaxInfoClass: _RTL_UMS_THREAD_INFO_CLASS = 7;
pub type _RTL_UMS_THREAD_INFO_CLASS = u32;
pub use self::_RTL_UMS_THREAD_INFO_CLASS as RTL_UMS_THREAD_INFO_CLASS;
pub type PRTL_UMS_THREAD_INFO_CLASS = *mut _RTL_UMS_THREAD_INFO_CLASS;
pub const _RTL_UMS_SCHEDULER_REASON_UmsSchedulerStartup: _RTL_UMS_SCHEDULER_REASON = 0;
pub const _RTL_UMS_SCHEDULER_REASON_UmsSchedulerThreadBlocked: _RTL_UMS_SCHEDULER_REASON = 1;
pub const _RTL_UMS_SCHEDULER_REASON_UmsSchedulerThreadYield: _RTL_UMS_SCHEDULER_REASON = 2;
pub type _RTL_UMS_SCHEDULER_REASON = u32;
pub use self::_RTL_UMS_SCHEDULER_REASON as RTL_UMS_SCHEDULER_REASON;
pub type PRTL_UMS_SCHEDULER_REASON = *mut _RTL_UMS_SCHEDULER_REASON;
pub type RTL_UMS_SCHEDULER_ENTRY_POINT = ::std::option::Option<
    unsafe extern "C" fn(
        Reason: RTL_UMS_SCHEDULER_REASON,
        ActivationPayload: ULONG_PTR,
        SchedulerParam: PVOID,
    ),
>;
pub type PRTL_UMS_SCHEDULER_ENTRY_POINT = RTL_UMS_SCHEDULER_ENTRY_POINT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RTL_CRITICAL_SECTION_DEBUG {
    pub Type: WORD,
    pub CreatorBackTraceIndex: WORD,
    pub CriticalSection: *mut _RTL_CRITICAL_SECTION,
    pub ProcessLocksList: LIST_ENTRY,
    pub EntryCount: DWORD,
    pub ContentionCount: DWORD,
    pub Flags: DWORD,
    pub CreatorBackTraceIndexHigh: WORD,
    pub SpareWORD: WORD,
}
pub type RTL_CRITICAL_SECTION_DEBUG = _RTL_CRITICAL_SECTION_DEBUG;
pub type PRTL_CRITICAL_SECTION_DEBUG = *mut _RTL_CRITICAL_SECTION_DEBUG;
pub type RTL_RESOURCE_DEBUG = _RTL_CRITICAL_SECTION_DEBUG;
pub type PRTL_RESOURCE_DEBUG = *mut _RTL_CRITICAL_SECTION_DEBUG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RTL_CRITICAL_SECTION {
    pub DebugInfo: PRTL_CRITICAL_SECTION_DEBUG,
    pub LockCount: LONG,
    pub RecursionCount: LONG,
    pub OwningThread: HANDLE,
    pub LockSemaphore: HANDLE,
    pub SpinCount: ULONG_PTR,
}
pub type RTL_CRITICAL_SECTION = _RTL_CRITICAL_SECTION;
pub type PRTL_CRITICAL_SECTION = *mut _RTL_CRITICAL_SECTION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RTL_SRWLOCK {
    pub Ptr: PVOID,
}
pub type RTL_SRWLOCK = _RTL_SRWLOCK;
pub type PRTL_SRWLOCK = *mut _RTL_SRWLOCK;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RTL_CONDITION_VARIABLE {
    pub Ptr: PVOID,
}
pub type RTL_CONDITION_VARIABLE = _RTL_CONDITION_VARIABLE;
pub type PRTL_CONDITION_VARIABLE = *mut _RTL_CONDITION_VARIABLE;
pub type PAPCFUNC = ::std::option::Option<unsafe extern "C" fn(Parameter: ULONG_PTR)>;
pub type PVECTORED_EXCEPTION_HANDLER =
    ::std::option::Option<unsafe extern "C" fn(ExceptionInfo: *mut _EXCEPTION_POINTERS) -> LONG>;
pub const _HEAP_INFORMATION_CLASS_HeapCompatibilityInformation: _HEAP_INFORMATION_CLASS = 0;
pub const _HEAP_INFORMATION_CLASS_HeapEnableTerminationOnCorruption: _HEAP_INFORMATION_CLASS = 1;
pub type _HEAP_INFORMATION_CLASS = u32;
pub use self::_HEAP_INFORMATION_CLASS as HEAP_INFORMATION_CLASS;
pub type WORKERCALLBACKFUNC = ::std::option::Option<unsafe extern "C" fn(arg1: PVOID)>;
pub type APC_CALLBACK_FUNCTION =
    ::std::option::Option<unsafe extern "C" fn(arg1: DWORD, arg2: PVOID, arg3: PVOID)>;
pub type WAITORTIMERCALLBACKFUNC =
    ::std::option::Option<unsafe extern "C" fn(arg1: PVOID, arg2: BOOLEAN)>;
pub type WAITORTIMERCALLBACK = WAITORTIMERCALLBACKFUNC;
pub type PFLS_CALLBACK_FUNCTION = ::std::option::Option<unsafe extern "C" fn(lpFlsData: PVOID)>;
pub type PSECURE_MEMORY_CACHE_CALLBACK =
    ::std::option::Option<unsafe extern "C" fn(Addr: PVOID, Range: SIZE_T) -> BOOLEAN>;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_ActivationContextBasicInformation:
    _ACTIVATION_CONTEXT_INFO_CLASS = 1;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_ActivationContextDetailedInformation:
    _ACTIVATION_CONTEXT_INFO_CLASS = 2;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_AssemblyDetailedInformationInActivationContext:
    _ACTIVATION_CONTEXT_INFO_CLASS = 3;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_FileInformationInAssemblyOfAssemblyInActivationContext:
    _ACTIVATION_CONTEXT_INFO_CLASS = 4;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_RunlevelInformationInActivationContext:
    _ACTIVATION_CONTEXT_INFO_CLASS = 5;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_CompatibilityInformationInActivationContext:
    _ACTIVATION_CONTEXT_INFO_CLASS = 6;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_ActivationContextManifestResourceName:
    _ACTIVATION_CONTEXT_INFO_CLASS = 7;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_MaxActivationContextInfoClass:
    _ACTIVATION_CONTEXT_INFO_CLASS = 8;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_AssemblyDetailedInformationInActivationContxt:
    _ACTIVATION_CONTEXT_INFO_CLASS = 3;
pub const _ACTIVATION_CONTEXT_INFO_CLASS_FileInformationInAssemblyOfAssemblyInActivationContxt:
    _ACTIVATION_CONTEXT_INFO_CLASS = 4;
pub type _ACTIVATION_CONTEXT_INFO_CLASS = u32;
pub use self::_ACTIVATION_CONTEXT_INFO_CLASS as ACTIVATION_CONTEXT_INFO_CLASS;
pub const ACTCTX_REQUESTED_RUN_LEVEL_ACTCTX_RUN_LEVEL_UNSPECIFIED: ACTCTX_REQUESTED_RUN_LEVEL = 0;
pub const ACTCTX_REQUESTED_RUN_LEVEL_ACTCTX_RUN_LEVEL_AS_INVOKER: ACTCTX_REQUESTED_RUN_LEVEL = 1;
pub const ACTCTX_REQUESTED_RUN_LEVEL_ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE:
    ACTCTX_REQUESTED_RUN_LEVEL = 2;
pub const ACTCTX_REQUESTED_RUN_LEVEL_ACTCTX_RUN_LEVEL_REQUIRE_ADMIN: ACTCTX_REQUESTED_RUN_LEVEL = 3;
pub const ACTCTX_REQUESTED_RUN_LEVEL_ACTCTX_RUN_LEVEL_NUMBERS: ACTCTX_REQUESTED_RUN_LEVEL = 4;
pub type ACTCTX_REQUESTED_RUN_LEVEL = u32;
pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN:
    ACTCTX_COMPATIBILITY_ELEMENT_TYPE = 0;
pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS:
    ACTCTX_COMPATIBILITY_ELEMENT_TYPE = 1;
pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MITIGATION:
    ACTCTX_COMPATIBILITY_ELEMENT_TYPE = 2;
pub type ACTCTX_COMPATIBILITY_ELEMENT_TYPE = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACTIVATION_CONTEXT_QUERY_INDEX {
    pub ulAssemblyIndex: DWORD,
    pub ulFileIndexInAssembly: DWORD,
}
pub type ACTIVATION_CONTEXT_QUERY_INDEX = _ACTIVATION_CONTEXT_QUERY_INDEX;
pub type PACTIVATION_CONTEXT_QUERY_INDEX = *mut _ACTIVATION_CONTEXT_QUERY_INDEX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ASSEMBLY_FILE_DETAILED_INFORMATION {
    pub ulFlags: DWORD,
    pub ulFilenameLength: DWORD,
    pub ulPathLength: DWORD,
    pub lpFileName: PCWSTR,
    pub lpFilePath: PCWSTR,
}
pub type ASSEMBLY_FILE_DETAILED_INFORMATION = _ASSEMBLY_FILE_DETAILED_INFORMATION;
pub type PASSEMBLY_FILE_DETAILED_INFORMATION = *mut _ASSEMBLY_FILE_DETAILED_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION {
    pub ulFlags: DWORD,
    pub ulEncodedAssemblyIdentityLength: DWORD,
    pub ulManifestPathType: DWORD,
    pub ulManifestPathLength: DWORD,
    pub liManifestLastWriteTime: LARGE_INTEGER,
    pub ulPolicyPathType: DWORD,
    pub ulPolicyPathLength: DWORD,
    pub liPolicyLastWriteTime: LARGE_INTEGER,
    pub ulMetadataSatelliteRosterIndex: DWORD,
    pub ulManifestVersionMajor: DWORD,
    pub ulManifestVersionMinor: DWORD,
    pub ulPolicyVersionMajor: DWORD,
    pub ulPolicyVersionMinor: DWORD,
    pub ulAssemblyDirectoryNameLength: DWORD,
    pub lpAssemblyEncodedAssemblyIdentity: PCWSTR,
    pub lpAssemblyManifestPath: PCWSTR,
    pub lpAssemblyPolicyPath: PCWSTR,
    pub lpAssemblyDirectoryName: PCWSTR,
    pub ulFileCount: DWORD,
}
pub type ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION =
    _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
pub type PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION =
    *mut _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION {
    pub ulFlags: DWORD,
    pub RunLevel: ACTCTX_REQUESTED_RUN_LEVEL,
    pub UiAccess: DWORD,
}
pub type ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
pub type PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = *mut _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COMPATIBILITY_CONTEXT_ELEMENT {
    pub Id: GUID,
    pub Type: ACTCTX_COMPATIBILITY_ELEMENT_TYPE,
}
pub type COMPATIBILITY_CONTEXT_ELEMENT = _COMPATIBILITY_CONTEXT_ELEMENT;
pub type PCOMPATIBILITY_CONTEXT_ELEMENT = *mut _COMPATIBILITY_CONTEXT_ELEMENT;
#[repr(C)]
#[derive(Debug)]
pub struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION {
    pub ElementCount: DWORD,
    pub Elements: __IncompleteArrayField<COMPATIBILITY_CONTEXT_ELEMENT>,
}
pub type ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION =
    _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
pub type PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION =
    *mut _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SUPPORTED_OS_INFO {
    pub OsCount: WORD,
    pub MitigationExist: WORD,
    pub OsList: [WORD; 4usize],
}
pub type SUPPORTED_OS_INFO = _SUPPORTED_OS_INFO;
pub type PSUPPORTED_OS_INFO = *mut _SUPPORTED_OS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION {
    pub dwFlags: DWORD,
    pub ulFormatVersion: DWORD,
    pub ulAssemblyCount: DWORD,
    pub ulRootManifestPathType: DWORD,
    pub ulRootManifestPathChars: DWORD,
    pub ulRootConfigurationPathType: DWORD,
    pub ulRootConfigurationPathChars: DWORD,
    pub ulAppDirPathType: DWORD,
    pub ulAppDirPathChars: DWORD,
    pub lpRootManifestPath: PCWSTR,
    pub lpRootConfigurationPath: PCWSTR,
    pub lpAppDirPath: PCWSTR,
}
pub type ACTIVATION_CONTEXT_DETAILED_INFORMATION = _ACTIVATION_CONTEXT_DETAILED_INFORMATION;
pub type PACTIVATION_CONTEXT_DETAILED_INFORMATION = *mut _ACTIVATION_CONTEXT_DETAILED_INFORMATION;
pub type PCACTIVATION_CONTEXT_QUERY_INDEX = *const _ACTIVATION_CONTEXT_QUERY_INDEX;
pub type PCASSEMBLY_FILE_DETAILED_INFORMATION = *const ASSEMBLY_FILE_DETAILED_INFORMATION;
pub type PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION =
    *const _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
pub type PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION =
    *const _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
pub type PCCOMPATIBILITY_CONTEXT_ELEMENT = *const _COMPATIBILITY_CONTEXT_ELEMENT;
pub type PCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION =
    *const _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
pub type PCACTIVATION_CONTEXT_DETAILED_INFORMATION =
    *const _ACTIVATION_CONTEXT_DETAILED_INFORMATION;
pub type RTL_VERIFIER_DLL_LOAD_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(DllName: PWSTR, DllBase: PVOID, DllSize: SIZE_T, Reserved: PVOID),
>;
pub type RTL_VERIFIER_DLL_UNLOAD_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(DllName: PWSTR, DllBase: PVOID, DllSize: SIZE_T, Reserved: PVOID),
>;
pub type RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK =
    ::std::option::Option<unsafe extern "C" fn(AllocationBase: PVOID, AllocationSize: SIZE_T)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RTL_VERIFIER_THUNK_DESCRIPTOR {
    pub ThunkName: PCHAR,
    pub ThunkOldAddress: PVOID,
    pub ThunkNewAddress: PVOID,
}
pub type RTL_VERIFIER_THUNK_DESCRIPTOR = _RTL_VERIFIER_THUNK_DESCRIPTOR;
pub type PRTL_VERIFIER_THUNK_DESCRIPTOR = *mut _RTL_VERIFIER_THUNK_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RTL_VERIFIER_DLL_DESCRIPTOR {
    pub DllName: PWCHAR,
    pub DllFlags: DWORD,
    pub DllAddress: PVOID,
    pub DllThunks: PRTL_VERIFIER_THUNK_DESCRIPTOR,
}
pub type RTL_VERIFIER_DLL_DESCRIPTOR = _RTL_VERIFIER_DLL_DESCRIPTOR;
pub type PRTL_VERIFIER_DLL_DESCRIPTOR = *mut _RTL_VERIFIER_DLL_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR {
    pub Length: DWORD,
    pub ProviderDlls: PRTL_VERIFIER_DLL_DESCRIPTOR,
    pub ProviderDllLoadCallback: RTL_VERIFIER_DLL_LOAD_CALLBACK,
    pub ProviderDllUnloadCallback: RTL_VERIFIER_DLL_UNLOAD_CALLBACK,
    pub VerifierImage: PWSTR,
    pub VerifierFlags: DWORD,
    pub VerifierDebug: DWORD,
    pub RtlpGetStackTraceAddress: PVOID,
    pub RtlpDebugPageHeapCreate: PVOID,
    pub RtlpDebugPageHeapDestroy: PVOID,
    pub ProviderNtdllHeapFreeCallback: RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK,
}
pub type RTL_VERIFIER_PROVIDER_DESCRIPTOR = _RTL_VERIFIER_PROVIDER_DESCRIPTOR;
pub type PRTL_VERIFIER_PROVIDER_DESCRIPTOR = *mut _RTL_VERIFIER_PROVIDER_DESCRIPTOR;
extern "C" {
    pub fn RtlApplicationVerifierStop(
        Code: ULONG_PTR,
        Message: PSTR,
        Param1: ULONG_PTR,
        Description1: PSTR,
        Param2: ULONG_PTR,
        Description2: PSTR,
        Param3: ULONG_PTR,
        Description3: PSTR,
        Param4: ULONG_PTR,
        Description4: PSTR,
    );
}
extern "C" {
    pub fn RtlSetHeapInformation(
        HeapHandle: PVOID,
        HeapInformationClass: HEAP_INFORMATION_CLASS,
        HeapInformation: PVOID,
        HeapInformationLength: SIZE_T,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlQueryHeapInformation(
        HeapHandle: PVOID,
        HeapInformationClass: HEAP_INFORMATION_CLASS,
        HeapInformation: PVOID,
        HeapInformationLength: SIZE_T,
        ReturnLength: PSIZE_T,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlMultipleAllocateHeap(
        HeapHandle: PVOID,
        Flags: DWORD,
        Size: SIZE_T,
        Count: DWORD,
        Array: *mut PVOID,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlMultipleFreeHeap(
        HeapHandle: PVOID,
        Flags: DWORD,
        Count: DWORD,
        Array: *mut PVOID,
    ) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HARDWARE_COUNTER_DATA {
    pub Type: HARDWARE_COUNTER_TYPE,
    pub Reserved: DWORD,
    pub Value: DWORD64,
}
pub type HARDWARE_COUNTER_DATA = _HARDWARE_COUNTER_DATA;
pub type PHARDWARE_COUNTER_DATA = *mut _HARDWARE_COUNTER_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PERFORMANCE_DATA {
    pub Size: WORD,
    pub Version: BYTE,
    pub HwCountersCount: BYTE,
    pub ContextSwitchCount: DWORD,
    pub WaitReasonBitMap: DWORD64,
    pub CycleTime: DWORD64,
    pub RetryCount: DWORD,
    pub Reserved: DWORD,
    pub HwCounters: [HARDWARE_COUNTER_DATA; 16usize],
}
pub type PERFORMANCE_DATA = _PERFORMANCE_DATA;
pub type PPERFORMANCE_DATA = *mut _PERFORMANCE_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EVENTLOGRECORD {
    pub Length: DWORD,
    pub Reserved: DWORD,
    pub RecordNumber: DWORD,
    pub TimeGenerated: DWORD,
    pub TimeWritten: DWORD,
    pub EventID: DWORD,
    pub EventType: WORD,
    pub NumStrings: WORD,
    pub EventCategory: WORD,
    pub ReservedFlags: WORD,
    pub ClosingRecordNumber: DWORD,
    pub StringOffset: DWORD,
    pub UserSidLength: DWORD,
    pub UserSidOffset: DWORD,
    pub DataLength: DWORD,
    pub DataOffset: DWORD,
}
pub type EVENTLOGRECORD = _EVENTLOGRECORD;
pub type PEVENTLOGRECORD = *mut _EVENTLOGRECORD;
#[repr(C)]
pub struct _EVENTSFORLOGFILE {
    pub ulSize: DWORD,
    pub szLogicalLogFile: [WCHAR; 256usize],
    pub ulNumRecords: DWORD,
    pub pEventLogRecords: __IncompleteArrayField<EVENTLOGRECORD>,
}
pub type EVENTSFORLOGFILE = _EVENTSFORLOGFILE;
pub type PEVENTSFORLOGFILE = *mut _EVENTSFORLOGFILE;
#[repr(C)]
#[derive(Debug)]
pub struct _PACKEDEVENTINFO {
    pub ulSize: DWORD,
    pub ulNumEventsForLogFile: DWORD,
    pub ulOffsets: __IncompleteArrayField<DWORD>,
}
pub type PACKEDEVENTINFO = _PACKEDEVENTINFO;
pub type PPACKEDEVENTINFO = *mut _PACKEDEVENTINFO;
pub const _CM_SERVICE_NODE_TYPE_DriverType: _CM_SERVICE_NODE_TYPE = 1;
pub const _CM_SERVICE_NODE_TYPE_FileSystemType: _CM_SERVICE_NODE_TYPE = 2;
pub const _CM_SERVICE_NODE_TYPE_Win32ServiceOwnProcess: _CM_SERVICE_NODE_TYPE = 16;
pub const _CM_SERVICE_NODE_TYPE_Win32ServiceShareProcess: _CM_SERVICE_NODE_TYPE = 32;
pub const _CM_SERVICE_NODE_TYPE_AdapterType: _CM_SERVICE_NODE_TYPE = 4;
pub const _CM_SERVICE_NODE_TYPE_RecognizerType: _CM_SERVICE_NODE_TYPE = 8;
pub type _CM_SERVICE_NODE_TYPE = u32;
pub use self::_CM_SERVICE_NODE_TYPE as SERVICE_NODE_TYPE;
pub const _CM_SERVICE_LOAD_TYPE_BootLoad: _CM_SERVICE_LOAD_TYPE = 0;
pub const _CM_SERVICE_LOAD_TYPE_SystemLoad: _CM_SERVICE_LOAD_TYPE = 1;
pub const _CM_SERVICE_LOAD_TYPE_AutoLoad: _CM_SERVICE_LOAD_TYPE = 2;
pub const _CM_SERVICE_LOAD_TYPE_DemandLoad: _CM_SERVICE_LOAD_TYPE = 3;
pub const _CM_SERVICE_LOAD_TYPE_DisableLoad: _CM_SERVICE_LOAD_TYPE = 4;
pub type _CM_SERVICE_LOAD_TYPE = u32;
pub use self::_CM_SERVICE_LOAD_TYPE as SERVICE_LOAD_TYPE;
pub const _CM_ERROR_CONTROL_TYPE_IgnoreError: _CM_ERROR_CONTROL_TYPE = 0;
pub const _CM_ERROR_CONTROL_TYPE_NormalError: _CM_ERROR_CONTROL_TYPE = 1;
pub const _CM_ERROR_CONTROL_TYPE_SevereError: _CM_ERROR_CONTROL_TYPE = 2;
pub const _CM_ERROR_CONTROL_TYPE_CriticalError: _CM_ERROR_CONTROL_TYPE = 3;
pub type _CM_ERROR_CONTROL_TYPE = u32;
pub use self::_CM_ERROR_CONTROL_TYPE as SERVICE_ERROR_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TAPE_ERASE {
    pub Type: DWORD,
    pub Immediate: BOOLEAN,
}
pub type TAPE_ERASE = _TAPE_ERASE;
pub type PTAPE_ERASE = *mut _TAPE_ERASE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TAPE_PREPARE {
    pub Operation: DWORD,
    pub Immediate: BOOLEAN,
}
pub type TAPE_PREPARE = _TAPE_PREPARE;
pub type PTAPE_PREPARE = *mut _TAPE_PREPARE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TAPE_WRITE_MARKS {
    pub Type: DWORD,
    pub Count: DWORD,
    pub Immediate: BOOLEAN,
}
pub type TAPE_WRITE_MARKS = _TAPE_WRITE_MARKS;
pub type PTAPE_WRITE_MARKS = *mut _TAPE_WRITE_MARKS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TAPE_GET_POSITION {
    pub Type: DWORD,
    pub Partition: DWORD,
    pub Offset: LARGE_INTEGER,
}
pub type TAPE_GET_POSITION = _TAPE_GET_POSITION;
pub type PTAPE_GET_POSITION = *mut _TAPE_GET_POSITION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TAPE_SET_POSITION {
    pub Method: DWORD,
    pub Partition: DWORD,
    pub Offset: LARGE_INTEGER,
    pub Immediate: BOOLEAN,
}
pub type TAPE_SET_POSITION = _TAPE_SET_POSITION;
pub type PTAPE_SET_POSITION = *mut _TAPE_SET_POSITION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TAPE_GET_DRIVE_PARAMETERS {
    pub ECC: BOOLEAN,
    pub Compression: BOOLEAN,
    pub DataPadding: BOOLEAN,
    pub ReportSetmarks: BOOLEAN,
    pub DefaultBlockSize: DWORD,
    pub MaximumBlockSize: DWORD,
    pub MinimumBlockSize: DWORD,
    pub MaximumPartitionCount: DWORD,
    pub FeaturesLow: DWORD,
    pub FeaturesHigh: DWORD,
    pub EOTWarningZoneSize: DWORD,
}
pub type TAPE_GET_DRIVE_PARAMETERS = _TAPE_GET_DRIVE_PARAMETERS;
pub type PTAPE_GET_DRIVE_PARAMETERS = *mut _TAPE_GET_DRIVE_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TAPE_SET_DRIVE_PARAMETERS {
    pub ECC: BOOLEAN,
    pub Compression: BOOLEAN,
    pub DataPadding: BOOLEAN,
    pub ReportSetmarks: BOOLEAN,
    pub EOTWarningZoneSize: DWORD,
}
pub type TAPE_SET_DRIVE_PARAMETERS = _TAPE_SET_DRIVE_PARAMETERS;
pub type PTAPE_SET_DRIVE_PARAMETERS = *mut _TAPE_SET_DRIVE_PARAMETERS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TAPE_GET_MEDIA_PARAMETERS {
    pub Capacity: LARGE_INTEGER,
    pub Remaining: LARGE_INTEGER,
    pub BlockSize: DWORD,
    pub PartitionCount: DWORD,
    pub WriteProtected: BOOLEAN,
}
pub type TAPE_GET_MEDIA_PARAMETERS = _TAPE_GET_MEDIA_PARAMETERS;
pub type PTAPE_GET_MEDIA_PARAMETERS = *mut _TAPE_GET_MEDIA_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TAPE_SET_MEDIA_PARAMETERS {
    pub BlockSize: DWORD,
}
pub type TAPE_SET_MEDIA_PARAMETERS = _TAPE_SET_MEDIA_PARAMETERS;
pub type PTAPE_SET_MEDIA_PARAMETERS = *mut _TAPE_SET_MEDIA_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TAPE_CREATE_PARTITION {
    pub Method: DWORD,
    pub Count: DWORD,
    pub Size: DWORD,
}
pub type TAPE_CREATE_PARTITION = _TAPE_CREATE_PARTITION;
pub type PTAPE_CREATE_PARTITION = *mut _TAPE_CREATE_PARTITION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TAPE_WMI_OPERATIONS {
    pub Method: DWORD,
    pub DataBufferSize: DWORD,
    pub DataBuffer: PVOID,
}
pub type TAPE_WMI_OPERATIONS = _TAPE_WMI_OPERATIONS;
pub type PTAPE_WMI_OPERATIONS = *mut _TAPE_WMI_OPERATIONS;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveProblemNone: _TAPE_DRIVE_PROBLEM_TYPE = 0;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveReadWriteWarning: _TAPE_DRIVE_PROBLEM_TYPE = 1;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveReadWriteError: _TAPE_DRIVE_PROBLEM_TYPE = 2;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveReadWarning: _TAPE_DRIVE_PROBLEM_TYPE = 3;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveWriteWarning: _TAPE_DRIVE_PROBLEM_TYPE = 4;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveReadError: _TAPE_DRIVE_PROBLEM_TYPE = 5;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveWriteError: _TAPE_DRIVE_PROBLEM_TYPE = 6;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveHardwareError: _TAPE_DRIVE_PROBLEM_TYPE = 7;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveUnsupportedMedia: _TAPE_DRIVE_PROBLEM_TYPE = 8;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveScsiConnectionError: _TAPE_DRIVE_PROBLEM_TYPE = 9;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveTimetoClean: _TAPE_DRIVE_PROBLEM_TYPE = 10;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveCleanDriveNow: _TAPE_DRIVE_PROBLEM_TYPE = 11;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveMediaLifeExpired: _TAPE_DRIVE_PROBLEM_TYPE = 12;
pub const _TAPE_DRIVE_PROBLEM_TYPE_TapeDriveSnappedTape: _TAPE_DRIVE_PROBLEM_TYPE = 13;
pub type _TAPE_DRIVE_PROBLEM_TYPE = u32;
pub use self::_TAPE_DRIVE_PROBLEM_TYPE as TAPE_DRIVE_PROBLEM_TYPE;
pub type TP_VERSION = DWORD;
pub type PTP_VERSION = *mut DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TP_CALLBACK_INSTANCE {
    _unused: [u8; 0],
}
pub type TP_CALLBACK_INSTANCE = _TP_CALLBACK_INSTANCE;
pub type PTP_CALLBACK_INSTANCE = *mut _TP_CALLBACK_INSTANCE;
pub type PTP_SIMPLE_CALLBACK =
    ::std::option::Option<unsafe extern "C" fn(Instance: PTP_CALLBACK_INSTANCE, Context: PVOID)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TP_POOL {
    _unused: [u8; 0],
}
pub type TP_POOL = _TP_POOL;
pub type PTP_POOL = *mut _TP_POOL;
pub const _TP_CALLBACK_PRIORITY_TP_CALLBACK_PRIORITY_HIGH: _TP_CALLBACK_PRIORITY = 0;
pub const _TP_CALLBACK_PRIORITY_TP_CALLBACK_PRIORITY_NORMAL: _TP_CALLBACK_PRIORITY = 1;
pub const _TP_CALLBACK_PRIORITY_TP_CALLBACK_PRIORITY_LOW: _TP_CALLBACK_PRIORITY = 2;
pub const _TP_CALLBACK_PRIORITY_TP_CALLBACK_PRIORITY_INVALID: _TP_CALLBACK_PRIORITY = 3;
pub const _TP_CALLBACK_PRIORITY_TP_CALLBACK_PRIORITY_COUNT: _TP_CALLBACK_PRIORITY = 3;
pub type _TP_CALLBACK_PRIORITY = u32;
pub use self::_TP_CALLBACK_PRIORITY as TP_CALLBACK_PRIORITY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TP_POOL_STACK_INFORMATION {
    pub StackReserve: SIZE_T,
    pub StackCommit: SIZE_T,
}
pub type TP_POOL_STACK_INFORMATION = _TP_POOL_STACK_INFORMATION;
pub type PTP_POOL_STACK_INFORMATION = *mut _TP_POOL_STACK_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TP_CLEANUP_GROUP {
    _unused: [u8; 0],
}
pub type TP_CLEANUP_GROUP = _TP_CLEANUP_GROUP;
pub type PTP_CLEANUP_GROUP = *mut _TP_CLEANUP_GROUP;
pub type PTP_CLEANUP_GROUP_CANCEL_CALLBACK =
    ::std::option::Option<unsafe extern "C" fn(ObjectContext: PVOID, CleanupContext: PVOID)>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TP_CALLBACK_ENVIRON_V1 {
    pub Version: TP_VERSION,
    pub Pool: PTP_POOL,
    pub CleanupGroup: PTP_CLEANUP_GROUP,
    pub CleanupGroupCancelCallback: PTP_CLEANUP_GROUP_CANCEL_CALLBACK,
    pub RaceDll: PVOID,
    pub ActivationContext: *mut _ACTIVATION_CONTEXT,
    pub FinalizationCallback: PTP_SIMPLE_CALLBACK,
    pub u: _TP_CALLBACK_ENVIRON_V1__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _TP_CALLBACK_ENVIRON_V1__bindgen_ty_1 {
    pub Flags: DWORD,
    pub s: _TP_CALLBACK_ENVIRON_V1__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _TP_CALLBACK_ENVIRON_V1__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
impl _TP_CALLBACK_ENVIRON_V1__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn LongFunction(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_LongFunction(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Persistent(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Persistent(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Private(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
    }
    #[inline]
    pub fn set_Private(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 30u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        LongFunction: DWORD,
        Persistent: DWORD,
        Private: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let LongFunction: u32 = unsafe { ::std::mem::transmute(LongFunction) };
            LongFunction as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let Persistent: u32 = unsafe { ::std::mem::transmute(Persistent) };
            Persistent as u64
        });
        __bindgen_bitfield_unit.set(2usize, 30u8, {
            let Private: u32 = unsafe { ::std::mem::transmute(Private) };
            Private as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type TP_CALLBACK_ENVIRON_V1 = _TP_CALLBACK_ENVIRON_V1;
pub type TP_CALLBACK_ENVIRON = TP_CALLBACK_ENVIRON_V1;
pub type PTP_CALLBACK_ENVIRON = *mut TP_CALLBACK_ENVIRON_V1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TP_WORK {
    _unused: [u8; 0],
}
pub type TP_WORK = _TP_WORK;
pub type PTP_WORK = *mut _TP_WORK;
pub type PTP_WORK_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(Instance: PTP_CALLBACK_INSTANCE, Context: PVOID, Work: PTP_WORK),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TP_TIMER {
    _unused: [u8; 0],
}
pub type TP_TIMER = _TP_TIMER;
pub type PTP_TIMER = *mut _TP_TIMER;
pub type PTP_TIMER_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(Instance: PTP_CALLBACK_INSTANCE, Context: PVOID, Timer: PTP_TIMER),
>;
pub type TP_WAIT_RESULT = DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TP_WAIT {
    _unused: [u8; 0],
}
pub type TP_WAIT = _TP_WAIT;
pub type PTP_WAIT = *mut _TP_WAIT;
pub type PTP_WAIT_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        Instance: PTP_CALLBACK_INSTANCE,
        Context: PVOID,
        Wait: PTP_WAIT,
        WaitResult: TP_WAIT_RESULT,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TP_IO {
    _unused: [u8; 0],
}
pub type TP_IO = _TP_IO;
pub type PTP_IO = *mut _TP_IO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TEB {
    _unused: [u8; 0],
}
extern "C" {
    pub fn NtCurrentTeb() -> *mut _TEB;
}
extern "C" {
    pub fn GetCurrentFiber() -> PVOID;
}
extern "C" {
    pub fn GetFiberData() -> PVOID;
}
pub type CRM_PROTOCOL_ID = GUID;
pub type PCRM_PROTOCOL_ID = *mut GUID;
pub type NOTIFICATION_MASK = ULONG;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TRANSACTION_NOTIFICATION {
    pub TransactionKey: PVOID,
    pub TransactionNotification: ULONG,
    pub TmVirtualClock: LARGE_INTEGER,
    pub ArgumentLength: ULONG,
}
pub type TRANSACTION_NOTIFICATION = _TRANSACTION_NOTIFICATION;
pub type PTRANSACTION_NOTIFICATION = *mut _TRANSACTION_NOTIFICATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT {
    pub EnlistmentId: GUID,
    pub UOW: GUID,
}
pub type TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
pub type PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT =
    *mut _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT {
    pub TmIdentity: GUID,
    pub Flags: ULONG,
}
pub type TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
pub type PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT =
    *mut _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
pub type SAVEPOINT_ID = ULONG;
pub type PSAVEPOINT_ID = *mut ULONG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT {
    pub SavepointId: SAVEPOINT_ID,
}
pub type TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
pub type PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT =
    *mut _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT {
    pub PropagationCookie: ULONG,
    pub UOW: GUID,
    pub TmIdentity: GUID,
    pub BufferLength: ULONG,
}
pub type TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
pub type PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT =
    *mut _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT {
    pub MarshalCookie: ULONG,
    pub UOW: GUID,
}
pub type TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
pub type PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT =
    *mut _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
pub type TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
pub type PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT =
    *mut TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _KCRM_MARSHAL_HEADER {
    pub VersionMajor: ULONG,
    pub VersionMinor: ULONG,
    pub NumProtocols: ULONG,
    pub Unused: ULONG,
}
pub type KCRM_MARSHAL_HEADER = _KCRM_MARSHAL_HEADER;
pub type PKCRM_MARSHAL_HEADER = *mut _KCRM_MARSHAL_HEADER;
pub type PRKCRM_MARSHAL_HEADER = *mut _KCRM_MARSHAL_HEADER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _KCRM_TRANSACTION_BLOB {
    pub UOW: GUID,
    pub TmIdentity: GUID,
    pub IsolationLevel: ULONG,
    pub IsolationFlags: ULONG,
    pub Timeout: ULONG,
    pub Description: [WCHAR; 64usize],
}
pub type KCRM_TRANSACTION_BLOB = _KCRM_TRANSACTION_BLOB;
pub type PKCRM_TRANSACTION_BLOB = *mut _KCRM_TRANSACTION_BLOB;
pub type PRKCRM_TRANSACTION_BLOB = *mut _KCRM_TRANSACTION_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _KCRM_PROTOCOL_BLOB {
    pub ProtocolId: CRM_PROTOCOL_ID,
    pub StaticInfoLength: ULONG,
    pub TransactionIdInfoLength: ULONG,
    pub Unused1: ULONG,
    pub Unused2: ULONG,
}
pub type KCRM_PROTOCOL_BLOB = _KCRM_PROTOCOL_BLOB;
pub type PKCRM_PROTOCOL_BLOB = *mut _KCRM_PROTOCOL_BLOB;
pub type PRKCRM_PROTOCOL_BLOB = *mut _KCRM_PROTOCOL_BLOB;
pub const _TRANSACTION_OUTCOME_TransactionOutcomeUndetermined: _TRANSACTION_OUTCOME = 1;
pub const _TRANSACTION_OUTCOME_TransactionOutcomeCommitted: _TRANSACTION_OUTCOME = 2;
pub const _TRANSACTION_OUTCOME_TransactionOutcomeAborted: _TRANSACTION_OUTCOME = 3;
pub type _TRANSACTION_OUTCOME = u32;
pub use self::_TRANSACTION_OUTCOME as TRANSACTION_OUTCOME;
pub const _TRANSACTION_STATE_TransactionStateNormal: _TRANSACTION_STATE = 1;
pub const _TRANSACTION_STATE_TransactionStateIndoubt: _TRANSACTION_STATE = 2;
pub const _TRANSACTION_STATE_TransactionStateCommittedNotify: _TRANSACTION_STATE = 3;
pub type _TRANSACTION_STATE = u32;
pub use self::_TRANSACTION_STATE as TRANSACTION_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_BASIC_INFORMATION {
    pub TransactionId: GUID,
    pub State: DWORD,
    pub Outcome: DWORD,
}
pub type TRANSACTION_BASIC_INFORMATION = _TRANSACTION_BASIC_INFORMATION;
pub type PTRANSACTION_BASIC_INFORMATION = *mut _TRANSACTION_BASIC_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TRANSACTIONMANAGER_BASIC_INFORMATION {
    pub TmIdentity: GUID,
    pub VirtualClock: LARGE_INTEGER,
}
pub type TRANSACTIONMANAGER_BASIC_INFORMATION = _TRANSACTIONMANAGER_BASIC_INFORMATION;
pub type PTRANSACTIONMANAGER_BASIC_INFORMATION = *mut _TRANSACTIONMANAGER_BASIC_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTIONMANAGER_LOG_INFORMATION {
    pub LogIdentity: GUID,
}
pub type TRANSACTIONMANAGER_LOG_INFORMATION = _TRANSACTIONMANAGER_LOG_INFORMATION;
pub type PTRANSACTIONMANAGER_LOG_INFORMATION = *mut _TRANSACTIONMANAGER_LOG_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION {
    pub LogPathLength: DWORD,
    pub LogPath: [WCHAR; 1usize],
}
pub type TRANSACTIONMANAGER_LOGPATH_INFORMATION = _TRANSACTIONMANAGER_LOGPATH_INFORMATION;
pub type PTRANSACTIONMANAGER_LOGPATH_INFORMATION = *mut _TRANSACTIONMANAGER_LOGPATH_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION {
    pub LastRecoveredLsn: ULONGLONG,
}
pub type TRANSACTIONMANAGER_RECOVERY_INFORMATION = _TRANSACTIONMANAGER_RECOVERY_INFORMATION;
pub type PTRANSACTIONMANAGER_RECOVERY_INFORMATION = *mut _TRANSACTIONMANAGER_RECOVERY_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTIONMANAGER_OLDEST_INFORMATION {
    pub OldestTransactionGuid: GUID,
}
pub type TRANSACTIONMANAGER_OLDEST_INFORMATION = _TRANSACTIONMANAGER_OLDEST_INFORMATION;
pub type PTRANSACTIONMANAGER_OLDEST_INFORMATION = *mut _TRANSACTIONMANAGER_OLDEST_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TRANSACTION_PROPERTIES_INFORMATION {
    pub IsolationLevel: DWORD,
    pub IsolationFlags: DWORD,
    pub Timeout: LARGE_INTEGER,
    pub Outcome: DWORD,
    pub DescriptionLength: DWORD,
    pub Description: [WCHAR; 1usize],
}
pub type TRANSACTION_PROPERTIES_INFORMATION = _TRANSACTION_PROPERTIES_INFORMATION;
pub type PTRANSACTION_PROPERTIES_INFORMATION = *mut _TRANSACTION_PROPERTIES_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_BIND_INFORMATION {
    pub TmHandle: HANDLE,
}
pub type TRANSACTION_BIND_INFORMATION = _TRANSACTION_BIND_INFORMATION;
pub type PTRANSACTION_BIND_INFORMATION = *mut _TRANSACTION_BIND_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_ENLISTMENT_PAIR {
    pub EnlistmentId: GUID,
    pub ResourceManagerId: GUID,
}
pub type TRANSACTION_ENLISTMENT_PAIR = _TRANSACTION_ENLISTMENT_PAIR;
pub type PTRANSACTION_ENLISTMENT_PAIR = *mut _TRANSACTION_ENLISTMENT_PAIR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_ENLISTMENTS_INFORMATION {
    pub NumberOfEnlistments: DWORD,
    pub EnlistmentPair: [TRANSACTION_ENLISTMENT_PAIR; 1usize],
}
pub type TRANSACTION_ENLISTMENTS_INFORMATION = _TRANSACTION_ENLISTMENTS_INFORMATION;
pub type PTRANSACTION_ENLISTMENTS_INFORMATION = *mut _TRANSACTION_ENLISTMENTS_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION {
    pub SuperiorEnlistmentPair: TRANSACTION_ENLISTMENT_PAIR,
}
pub type TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
pub type PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION =
    *mut _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RESOURCEMANAGER_BASIC_INFORMATION {
    pub ResourceManagerId: GUID,
    pub DescriptionLength: DWORD,
    pub Description: [WCHAR; 1usize],
}
pub type RESOURCEMANAGER_BASIC_INFORMATION = _RESOURCEMANAGER_BASIC_INFORMATION;
pub type PRESOURCEMANAGER_BASIC_INFORMATION = *mut _RESOURCEMANAGER_BASIC_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RESOURCEMANAGER_COMPLETION_INFORMATION {
    pub IoCompletionPortHandle: HANDLE,
    pub CompletionKey: ULONG_PTR,
}
pub type RESOURCEMANAGER_COMPLETION_INFORMATION = _RESOURCEMANAGER_COMPLETION_INFORMATION;
pub type PRESOURCEMANAGER_COMPLETION_INFORMATION = *mut _RESOURCEMANAGER_COMPLETION_INFORMATION;
pub const _TRANSACTION_INFORMATION_CLASS_TransactionBasicInformation:
    _TRANSACTION_INFORMATION_CLASS = 0;
pub const _TRANSACTION_INFORMATION_CLASS_TransactionPropertiesInformation:
    _TRANSACTION_INFORMATION_CLASS = 1;
pub const _TRANSACTION_INFORMATION_CLASS_TransactionEnlistmentInformation:
    _TRANSACTION_INFORMATION_CLASS = 2;
pub const _TRANSACTION_INFORMATION_CLASS_TransactionSuperiorEnlistmentInformation:
    _TRANSACTION_INFORMATION_CLASS = 3;
pub const _TRANSACTION_INFORMATION_CLASS_TransactionBindInformation:
    _TRANSACTION_INFORMATION_CLASS = 4;
pub const _TRANSACTION_INFORMATION_CLASS_TransactionDTCPrivateInformation:
    _TRANSACTION_INFORMATION_CLASS = 5;
pub type _TRANSACTION_INFORMATION_CLASS = u32;
pub use self::_TRANSACTION_INFORMATION_CLASS as TRANSACTION_INFORMATION_CLASS;
pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerBasicInformation:
    _TRANSACTIONMANAGER_INFORMATION_CLASS = 0;
pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerLogInformation:
    _TRANSACTIONMANAGER_INFORMATION_CLASS = 1;
pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerLogPathInformation:
    _TRANSACTIONMANAGER_INFORMATION_CLASS = 2;
pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerOnlineProbeInformation:
    _TRANSACTIONMANAGER_INFORMATION_CLASS = 3;
pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerRecoveryInformation:
    _TRANSACTIONMANAGER_INFORMATION_CLASS = 4;
pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerOldestTransactionInformation:
    _TRANSACTIONMANAGER_INFORMATION_CLASS = 5;
pub type _TRANSACTIONMANAGER_INFORMATION_CLASS = u32;
pub use self::_TRANSACTIONMANAGER_INFORMATION_CLASS as TRANSACTIONMANAGER_INFORMATION_CLASS;
pub const _RESOURCEMANAGER_INFORMATION_CLASS_ResourceManagerBasicInformation:
    _RESOURCEMANAGER_INFORMATION_CLASS = 0;
pub const _RESOURCEMANAGER_INFORMATION_CLASS_ResourceManagerCompletionInformation:
    _RESOURCEMANAGER_INFORMATION_CLASS = 1;
pub type _RESOURCEMANAGER_INFORMATION_CLASS = u32;
pub use self::_RESOURCEMANAGER_INFORMATION_CLASS as RESOURCEMANAGER_INFORMATION_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENLISTMENT_BASIC_INFORMATION {
    pub EnlistmentId: GUID,
    pub TransactionId: GUID,
    pub ResourceManagerId: GUID,
}
pub type ENLISTMENT_BASIC_INFORMATION = _ENLISTMENT_BASIC_INFORMATION;
pub type PENLISTMENT_BASIC_INFORMATION = *mut _ENLISTMENT_BASIC_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENLISTMENT_CRM_INFORMATION {
    pub CrmTransactionManagerId: GUID,
    pub CrmResourceManagerId: GUID,
    pub CrmEnlistmentId: GUID,
}
pub type ENLISTMENT_CRM_INFORMATION = _ENLISTMENT_CRM_INFORMATION;
pub type PENLISTMENT_CRM_INFORMATION = *mut _ENLISTMENT_CRM_INFORMATION;
pub const _ENLISTMENT_INFORMATION_CLASS_EnlistmentBasicInformation: _ENLISTMENT_INFORMATION_CLASS =
    0;
pub const _ENLISTMENT_INFORMATION_CLASS_EnlistmentRecoveryInformation:
    _ENLISTMENT_INFORMATION_CLASS = 1;
pub const _ENLISTMENT_INFORMATION_CLASS_EnlistmentCrmInformation: _ENLISTMENT_INFORMATION_CLASS = 2;
pub type _ENLISTMENT_INFORMATION_CLASS = u32;
pub use self::_ENLISTMENT_INFORMATION_CLASS as ENLISTMENT_INFORMATION_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_LIST_ENTRY {
    pub UOW: GUID,
}
pub type TRANSACTION_LIST_ENTRY = _TRANSACTION_LIST_ENTRY;
pub type PTRANSACTION_LIST_ENTRY = *mut _TRANSACTION_LIST_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_LIST_INFORMATION {
    pub NumberOfTransactions: DWORD,
    pub TransactionInformation: [TRANSACTION_LIST_ENTRY; 1usize],
}
pub type TRANSACTION_LIST_INFORMATION = _TRANSACTION_LIST_INFORMATION;
pub type PTRANSACTION_LIST_INFORMATION = *mut _TRANSACTION_LIST_INFORMATION;
pub const _KTMOBJECT_TYPE_KTMOBJECT_TRANSACTION: _KTMOBJECT_TYPE = 0;
pub const _KTMOBJECT_TYPE_KTMOBJECT_TRANSACTION_MANAGER: _KTMOBJECT_TYPE = 1;
pub const _KTMOBJECT_TYPE_KTMOBJECT_RESOURCE_MANAGER: _KTMOBJECT_TYPE = 2;
pub const _KTMOBJECT_TYPE_KTMOBJECT_ENLISTMENT: _KTMOBJECT_TYPE = 3;
pub const _KTMOBJECT_TYPE_KTMOBJECT_INVALID: _KTMOBJECT_TYPE = 4;
pub type _KTMOBJECT_TYPE = u32;
pub use self::_KTMOBJECT_TYPE as KTMOBJECT_TYPE;
pub type PKTMOBJECT_TYPE = *mut _KTMOBJECT_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _KTMOBJECT_CURSOR {
    pub LastQuery: GUID,
    pub ObjectIdCount: DWORD,
    pub ObjectIds: [GUID; 1usize],
}
pub type KTMOBJECT_CURSOR = _KTMOBJECT_CURSOR;
pub type PKTMOBJECT_CURSOR = *mut _KTMOBJECT_CURSOR;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WOW64_FLOATING_SAVE_AREA {
    pub ControlWord: DWORD,
    pub StatusWord: DWORD,
    pub TagWord: DWORD,
    pub ErrorOffset: DWORD,
    pub ErrorSelector: DWORD,
    pub DataOffset: DWORD,
    pub DataSelector: DWORD,
    pub RegisterArea: [BYTE; 80usize],
    pub Cr0NpxState: DWORD,
}
pub type WOW64_FLOATING_SAVE_AREA = _WOW64_FLOATING_SAVE_AREA;
pub type PWOW64_FLOATING_SAVE_AREA = *mut _WOW64_FLOATING_SAVE_AREA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WOW64_CONTEXT {
    pub ContextFlags: DWORD,
    pub Dr0: DWORD,
    pub Dr1: DWORD,
    pub Dr2: DWORD,
    pub Dr3: DWORD,
    pub Dr6: DWORD,
    pub Dr7: DWORD,
    pub FloatSave: WOW64_FLOATING_SAVE_AREA,
    pub SegGs: DWORD,
    pub SegFs: DWORD,
    pub SegEs: DWORD,
    pub SegDs: DWORD,
    pub Edi: DWORD,
    pub Esi: DWORD,
    pub Ebx: DWORD,
    pub Edx: DWORD,
    pub Ecx: DWORD,
    pub Eax: DWORD,
    pub Ebp: DWORD,
    pub Eip: DWORD,
    pub SegCs: DWORD,
    pub EFlags: DWORD,
    pub Esp: DWORD,
    pub SegSs: DWORD,
    pub ExtendedRegisters: [BYTE; 512usize],
}
pub type WOW64_CONTEXT = _WOW64_CONTEXT;
pub type PWOW64_CONTEXT = *mut _WOW64_CONTEXT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WOW64_LDT_ENTRY {
    pub LimitLow: WORD,
    pub BaseLow: WORD,
    pub HighWord: _WOW64_LDT_ENTRY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _WOW64_LDT_ENTRY__bindgen_ty_1 {
    pub Bytes: _WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1,
    pub Bits: _WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1 {
    pub BaseMid: BYTE,
    pub Flags1: BYTE,
    pub Flags2: BYTE,
    pub BaseHi: BYTE,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u8>,
}
impl _WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2 {
    #[inline]
    pub fn BaseMid(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_BaseMid(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn Type(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 5u8) as u32) }
    }
    #[inline]
    pub fn set_Type(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 5u8, val as u64)
        }
    }
    #[inline]
    pub fn Dpl(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_Dpl(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn Pres(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Pres(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn LimitHi(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_LimitHi(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn Sys(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Sys(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(20usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved_0(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved_0(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(21usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Default_Big(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Default_Big(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(22usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Granularity(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Granularity(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(23usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn BaseHi(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_BaseHi(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(24usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        BaseMid: DWORD,
        Type: DWORD,
        Dpl: DWORD,
        Pres: DWORD,
        LimitHi: DWORD,
        Sys: DWORD,
        Reserved_0: DWORD,
        Default_Big: DWORD,
        Granularity: DWORD,
        BaseHi: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let BaseMid: u32 = unsafe { ::std::mem::transmute(BaseMid) };
            BaseMid as u64
        });
        __bindgen_bitfield_unit.set(8usize, 5u8, {
            let Type: u32 = unsafe { ::std::mem::transmute(Type) };
            Type as u64
        });
        __bindgen_bitfield_unit.set(13usize, 2u8, {
            let Dpl: u32 = unsafe { ::std::mem::transmute(Dpl) };
            Dpl as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let Pres: u32 = unsafe { ::std::mem::transmute(Pres) };
            Pres as u64
        });
        __bindgen_bitfield_unit.set(16usize, 4u8, {
            let LimitHi: u32 = unsafe { ::std::mem::transmute(LimitHi) };
            LimitHi as u64
        });
        __bindgen_bitfield_unit.set(20usize, 1u8, {
            let Sys: u32 = unsafe { ::std::mem::transmute(Sys) };
            Sys as u64
        });
        __bindgen_bitfield_unit.set(21usize, 1u8, {
            let Reserved_0: u32 = unsafe { ::std::mem::transmute(Reserved_0) };
            Reserved_0 as u64
        });
        __bindgen_bitfield_unit.set(22usize, 1u8, {
            let Default_Big: u32 = unsafe { ::std::mem::transmute(Default_Big) };
            Default_Big as u64
        });
        __bindgen_bitfield_unit.set(23usize, 1u8, {
            let Granularity: u32 = unsafe { ::std::mem::transmute(Granularity) };
            Granularity as u64
        });
        __bindgen_bitfield_unit.set(24usize, 8u8, {
            let BaseHi: u32 = unsafe { ::std::mem::transmute(BaseHi) };
            BaseHi as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type WOW64_LDT_ENTRY = _WOW64_LDT_ENTRY;
pub type PWOW64_LDT_ENTRY = *mut _WOW64_LDT_ENTRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WOW64_DESCRIPTOR_TABLE_ENTRY {
    pub Selector: DWORD,
    pub Descriptor: WOW64_LDT_ENTRY,
}
pub type WOW64_DESCRIPTOR_TABLE_ENTRY = _WOW64_DESCRIPTOR_TABLE_ENTRY;
pub type PWOW64_DESCRIPTOR_TABLE_ENTRY = *mut _WOW64_DESCRIPTOR_TABLE_ENTRY;
pub type WPARAM = UINT_PTR;
pub type LPARAM = LONG_PTR;
pub type LRESULT = LONG_PTR;
pub type SPHANDLE = *mut HANDLE;
pub type LPHANDLE = *mut HANDLE;
pub type HGLOBAL = HANDLE;
pub type HLOCAL = HANDLE;
pub type GLOBALHANDLE = HANDLE;
pub type LOCALHANDLE = HANDLE;
pub type FARPROC = ::std::option::Option<unsafe extern "C" fn() -> INT_PTR>;
pub type NEARPROC = ::std::option::Option<unsafe extern "C" fn() -> INT_PTR>;
pub type PROC = ::std::option::Option<unsafe extern "C" fn() -> INT_PTR>;
pub type ATOM = WORD;
pub type HFILE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HINSTANCE__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HINSTANCE = *mut HINSTANCE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HKEY__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HKEY = *mut HKEY__;
pub type PHKEY = *mut HKEY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HKL__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HKL = *mut HKL__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HLSURF__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HLSURF = *mut HLSURF__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HMETAFILE__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HMETAFILE = *mut HMETAFILE__;
pub type HMODULE = HINSTANCE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HRGN__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HRGN = *mut HRGN__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HRSRC__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HRSRC = *mut HRSRC__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HSPRITE__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HSPRITE = *mut HSPRITE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HSTR__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HSTR = *mut HSTR__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HTASK__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HTASK = *mut HTASK__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HWINSTA__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HWINSTA = *mut HWINSTA__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILETIME {
    pub dwLowDateTime: DWORD,
    pub dwHighDateTime: DWORD,
}
pub type FILETIME = _FILETIME;
pub type PFILETIME = *mut _FILETIME;
pub type LPFILETIME = *mut _FILETIME;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HWND__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HWND = *mut HWND__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HHOOK__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HHOOK = *mut HHOOK__;
pub type HGDIOBJ = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HACCEL__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HACCEL = *mut HACCEL__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HBITMAP__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HBITMAP = *mut HBITMAP__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HBRUSH__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HBRUSH = *mut HBRUSH__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HCOLORSPACE__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HCOLORSPACE = *mut HCOLORSPACE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HDC__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HDC = *mut HDC__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HGLRC__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HGLRC = *mut HGLRC__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HDESK__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HDESK = *mut HDESK__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HENHMETAFILE__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HENHMETAFILE = *mut HENHMETAFILE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HFONT__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HFONT = *mut HFONT__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HICON__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HICON = *mut HICON__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HMENU__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HMENU = *mut HMENU__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HPALETTE__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HPALETTE = *mut HPALETTE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HPEN__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HPEN = *mut HPEN__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HMONITOR__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HMONITOR = *mut HMONITOR__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HWINEVENTHOOK__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HWINEVENTHOOK = *mut HWINEVENTHOOK__;
pub type HCURSOR = HICON;
pub type COLORREF = DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HUMPD__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HUMPD = *mut HUMPD__;
pub type LPCOLORREF = *mut DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRECT {
    pub left: LONG,
    pub top: LONG,
    pub right: LONG,
    pub bottom: LONG,
}
pub type RECT = tagRECT;
pub type PRECT = *mut tagRECT;
pub type NPRECT = *mut tagRECT;
pub type LPRECT = *mut tagRECT;
pub type LPCRECT = *const RECT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RECTL {
    pub left: LONG,
    pub top: LONG,
    pub right: LONG,
    pub bottom: LONG,
}
pub type RECTL = _RECTL;
pub type PRECTL = *mut _RECTL;
pub type LPRECTL = *mut _RECTL;
pub type LPCRECTL = *const RECTL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOINT {
    pub x: LONG,
    pub y: LONG,
}
pub type POINT = tagPOINT;
pub type PPOINT = *mut tagPOINT;
pub type NPPOINT = *mut tagPOINT;
pub type LPPOINT = *mut tagPOINT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POINTL {
    pub x: LONG,
    pub y: LONG,
}
pub type POINTL = _POINTL;
pub type PPOINTL = *mut _POINTL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSIZE {
    pub cx: LONG,
    pub cy: LONG,
}
pub type SIZE = tagSIZE;
pub type PSIZE = *mut tagSIZE;
pub type LPSIZE = *mut tagSIZE;
pub type SIZEL = SIZE;
pub type PSIZEL = *mut SIZE;
pub type LPSIZEL = *mut SIZE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOINTS {
    pub x: SHORT,
    pub y: SHORT,
}
pub type POINTS = tagPOINTS;
pub type PPOINTS = *mut tagPOINTS;
pub type LPPOINTS = *mut tagPOINTS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SECURITY_ATTRIBUTES {
    pub nLength: DWORD,
    pub lpSecurityDescriptor: LPVOID,
    pub bInheritHandle: WINBOOL,
}
pub type SECURITY_ATTRIBUTES = _SECURITY_ATTRIBUTES;
pub type PSECURITY_ATTRIBUTES = *mut _SECURITY_ATTRIBUTES;
pub type LPSECURITY_ATTRIBUTES = *mut _SECURITY_ATTRIBUTES;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _OVERLAPPED {
    pub Internal: ULONG_PTR,
    pub InternalHigh: ULONG_PTR,
    pub __bindgen_anon_1: _OVERLAPPED__bindgen_ty_1,
    pub hEvent: HANDLE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _OVERLAPPED__bindgen_ty_1 {
    pub __bindgen_anon_1: _OVERLAPPED__bindgen_ty_1__bindgen_ty_1,
    pub Pointer: PVOID,
    _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OVERLAPPED__bindgen_ty_1__bindgen_ty_1 {
    pub Offset: DWORD,
    pub OffsetHigh: DWORD,
}
pub type OVERLAPPED = _OVERLAPPED;
pub type LPOVERLAPPED = *mut _OVERLAPPED;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OVERLAPPED_ENTRY {
    pub lpCompletionKey: ULONG_PTR,
    pub lpOverlapped: LPOVERLAPPED,
    pub Internal: ULONG_PTR,
    pub dwNumberOfBytesTransferred: DWORD,
}
pub type OVERLAPPED_ENTRY = _OVERLAPPED_ENTRY;
pub type LPOVERLAPPED_ENTRY = *mut _OVERLAPPED_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEMTIME {
    pub wYear: WORD,
    pub wMonth: WORD,
    pub wDayOfWeek: WORD,
    pub wDay: WORD,
    pub wHour: WORD,
    pub wMinute: WORD,
    pub wSecond: WORD,
    pub wMilliseconds: WORD,
}
pub type SYSTEMTIME = _SYSTEMTIME;
pub type PSYSTEMTIME = *mut _SYSTEMTIME;
pub type LPSYSTEMTIME = *mut _SYSTEMTIME;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WIN32_FIND_DATAA {
    pub dwFileAttributes: DWORD,
    pub ftCreationTime: FILETIME,
    pub ftLastAccessTime: FILETIME,
    pub ftLastWriteTime: FILETIME,
    pub nFileSizeHigh: DWORD,
    pub nFileSizeLow: DWORD,
    pub dwReserved0: DWORD,
    pub dwReserved1: DWORD,
    pub cFileName: [CHAR; 260usize],
    pub cAlternateFileName: [CHAR; 14usize],
}
pub type WIN32_FIND_DATAA = _WIN32_FIND_DATAA;
pub type PWIN32_FIND_DATAA = *mut _WIN32_FIND_DATAA;
pub type LPWIN32_FIND_DATAA = *mut _WIN32_FIND_DATAA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WIN32_FIND_DATAW {
    pub dwFileAttributes: DWORD,
    pub ftCreationTime: FILETIME,
    pub ftLastAccessTime: FILETIME,
    pub ftLastWriteTime: FILETIME,
    pub nFileSizeHigh: DWORD,
    pub nFileSizeLow: DWORD,
    pub dwReserved0: DWORD,
    pub dwReserved1: DWORD,
    pub cFileName: [WCHAR; 260usize],
    pub cAlternateFileName: [WCHAR; 14usize],
}
pub type WIN32_FIND_DATAW = _WIN32_FIND_DATAW;
pub type PWIN32_FIND_DATAW = *mut _WIN32_FIND_DATAW;
pub type LPWIN32_FIND_DATAW = *mut _WIN32_FIND_DATAW;
pub type WIN32_FIND_DATA = WIN32_FIND_DATAA;
pub type PWIN32_FIND_DATA = PWIN32_FIND_DATAA;
pub type LPWIN32_FIND_DATA = LPWIN32_FIND_DATAA;
pub const _FINDEX_INFO_LEVELS_FindExInfoStandard: _FINDEX_INFO_LEVELS = 0;
pub const _FINDEX_INFO_LEVELS_FindExInfoBasic: _FINDEX_INFO_LEVELS = 1;
pub const _FINDEX_INFO_LEVELS_FindExInfoMaxInfoLevel: _FINDEX_INFO_LEVELS = 2;
pub type _FINDEX_INFO_LEVELS = u32;
pub use self::_FINDEX_INFO_LEVELS as FINDEX_INFO_LEVELS;
pub const _FINDEX_SEARCH_OPS_FindExSearchNameMatch: _FINDEX_SEARCH_OPS = 0;
pub const _FINDEX_SEARCH_OPS_FindExSearchLimitToDirectories: _FINDEX_SEARCH_OPS = 1;
pub const _FINDEX_SEARCH_OPS_FindExSearchLimitToDevices: _FINDEX_SEARCH_OPS = 2;
pub const _FINDEX_SEARCH_OPS_FindExSearchMaxSearchOp: _FINDEX_SEARCH_OPS = 3;
pub type _FINDEX_SEARCH_OPS = u32;
pub use self::_FINDEX_SEARCH_OPS as FINDEX_SEARCH_OPS;
pub const _GET_FILEEX_INFO_LEVELS_GetFileExInfoStandard: _GET_FILEEX_INFO_LEVELS = 0;
pub const _GET_FILEEX_INFO_LEVELS_GetFileExMaxInfoLevel: _GET_FILEEX_INFO_LEVELS = 1;
pub type _GET_FILEEX_INFO_LEVELS = u32;
pub use self::_GET_FILEEX_INFO_LEVELS as GET_FILEEX_INFO_LEVELS;
pub type CRITICAL_SECTION = RTL_CRITICAL_SECTION;
pub type PCRITICAL_SECTION = PRTL_CRITICAL_SECTION;
pub type LPCRITICAL_SECTION = PRTL_CRITICAL_SECTION;
pub type CRITICAL_SECTION_DEBUG = RTL_CRITICAL_SECTION_DEBUG;
pub type PCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG;
pub type LPCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG;
pub type LPOVERLAPPED_COMPLETION_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        dwErrorCode: DWORD,
        dwNumberOfBytesTransfered: DWORD,
        lpOverlapped: LPOVERLAPPED,
    ),
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_HEAP_ENTRY {
    pub lpData: PVOID,
    pub cbData: DWORD,
    pub cbOverhead: BYTE,
    pub iRegionIndex: BYTE,
    pub wFlags: WORD,
    pub __bindgen_anon_1: _PROCESS_HEAP_ENTRY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_HEAP_ENTRY__bindgen_ty_1 {
    pub Block: _PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1,
    pub Region: _PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u64; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1 {
    pub hMem: HANDLE,
    pub dwReserved: [DWORD; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2 {
    pub dwCommittedSize: DWORD,
    pub dwUnCommittedSize: DWORD,
    pub lpFirstBlock: LPVOID,
    pub lpLastBlock: LPVOID,
}
pub type PROCESS_HEAP_ENTRY = _PROCESS_HEAP_ENTRY;
pub type LPPROCESS_HEAP_ENTRY = *mut _PROCESS_HEAP_ENTRY;
pub type PPROCESS_HEAP_ENTRY = *mut _PROCESS_HEAP_ENTRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _REASON_CONTEXT {
    pub Version: ULONG,
    pub Flags: DWORD,
    pub Reason: _REASON_CONTEXT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _REASON_CONTEXT__bindgen_ty_1 {
    pub Detailed: _REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1,
    pub SimpleReasonString: LPWSTR,
    _bindgen_union_align: [u64; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1 {
    pub LocalizedReasonModule: HMODULE,
    pub LocalizedReasonId: ULONG,
    pub ReasonStringCount: ULONG,
    pub ReasonStrings: *mut LPWSTR,
}
pub type REASON_CONTEXT = _REASON_CONTEXT;
pub type PREASON_CONTEXT = *mut _REASON_CONTEXT;
pub type PTHREAD_START_ROUTINE =
    ::std::option::Option<unsafe extern "C" fn(lpThreadParameter: LPVOID) -> DWORD>;
pub type LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE;
pub type PENCLAVE_ROUTINE =
    ::std::option::Option<unsafe extern "C" fn(lpThreadParameter: LPVOID) -> LPVOID>;
pub type LPENCLAVE_ROUTINE = PENCLAVE_ROUTINE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXCEPTION_DEBUG_INFO {
    pub ExceptionRecord: EXCEPTION_RECORD,
    pub dwFirstChance: DWORD,
}
pub type EXCEPTION_DEBUG_INFO = _EXCEPTION_DEBUG_INFO;
pub type LPEXCEPTION_DEBUG_INFO = *mut _EXCEPTION_DEBUG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CREATE_THREAD_DEBUG_INFO {
    pub hThread: HANDLE,
    pub lpThreadLocalBase: LPVOID,
    pub lpStartAddress: LPTHREAD_START_ROUTINE,
}
pub type CREATE_THREAD_DEBUG_INFO = _CREATE_THREAD_DEBUG_INFO;
pub type LPCREATE_THREAD_DEBUG_INFO = *mut _CREATE_THREAD_DEBUG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CREATE_PROCESS_DEBUG_INFO {
    pub hFile: HANDLE,
    pub hProcess: HANDLE,
    pub hThread: HANDLE,
    pub lpBaseOfImage: LPVOID,
    pub dwDebugInfoFileOffset: DWORD,
    pub nDebugInfoSize: DWORD,
    pub lpThreadLocalBase: LPVOID,
    pub lpStartAddress: LPTHREAD_START_ROUTINE,
    pub lpImageName: LPVOID,
    pub fUnicode: WORD,
}
pub type CREATE_PROCESS_DEBUG_INFO = _CREATE_PROCESS_DEBUG_INFO;
pub type LPCREATE_PROCESS_DEBUG_INFO = *mut _CREATE_PROCESS_DEBUG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXIT_THREAD_DEBUG_INFO {
    pub dwExitCode: DWORD,
}
pub type EXIT_THREAD_DEBUG_INFO = _EXIT_THREAD_DEBUG_INFO;
pub type LPEXIT_THREAD_DEBUG_INFO = *mut _EXIT_THREAD_DEBUG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXIT_PROCESS_DEBUG_INFO {
    pub dwExitCode: DWORD,
}
pub type EXIT_PROCESS_DEBUG_INFO = _EXIT_PROCESS_DEBUG_INFO;
pub type LPEXIT_PROCESS_DEBUG_INFO = *mut _EXIT_PROCESS_DEBUG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LOAD_DLL_DEBUG_INFO {
    pub hFile: HANDLE,
    pub lpBaseOfDll: LPVOID,
    pub dwDebugInfoFileOffset: DWORD,
    pub nDebugInfoSize: DWORD,
    pub lpImageName: LPVOID,
    pub fUnicode: WORD,
}
pub type LOAD_DLL_DEBUG_INFO = _LOAD_DLL_DEBUG_INFO;
pub type LPLOAD_DLL_DEBUG_INFO = *mut _LOAD_DLL_DEBUG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _UNLOAD_DLL_DEBUG_INFO {
    pub lpBaseOfDll: LPVOID,
}
pub type UNLOAD_DLL_DEBUG_INFO = _UNLOAD_DLL_DEBUG_INFO;
pub type LPUNLOAD_DLL_DEBUG_INFO = *mut _UNLOAD_DLL_DEBUG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OUTPUT_DEBUG_STRING_INFO {
    pub lpDebugStringData: LPSTR,
    pub fUnicode: WORD,
    pub nDebugStringLength: WORD,
}
pub type OUTPUT_DEBUG_STRING_INFO = _OUTPUT_DEBUG_STRING_INFO;
pub type LPOUTPUT_DEBUG_STRING_INFO = *mut _OUTPUT_DEBUG_STRING_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RIP_INFO {
    pub dwError: DWORD,
    pub dwType: DWORD,
}
pub type RIP_INFO = _RIP_INFO;
pub type LPRIP_INFO = *mut _RIP_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DEBUG_EVENT {
    pub dwDebugEventCode: DWORD,
    pub dwProcessId: DWORD,
    pub dwThreadId: DWORD,
    pub u: _DEBUG_EVENT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DEBUG_EVENT__bindgen_ty_1 {
    pub Exception: EXCEPTION_DEBUG_INFO,
    pub CreateThread: CREATE_THREAD_DEBUG_INFO,
    pub CreateProcessInfo: CREATE_PROCESS_DEBUG_INFO,
    pub ExitThread: EXIT_THREAD_DEBUG_INFO,
    pub ExitProcess: EXIT_PROCESS_DEBUG_INFO,
    pub LoadDll: LOAD_DLL_DEBUG_INFO,
    pub UnloadDll: UNLOAD_DLL_DEBUG_INFO,
    pub DebugString: OUTPUT_DEBUG_STRING_INFO,
    pub RipInfo: RIP_INFO,
    _bindgen_union_align: [u64; 20usize],
}
pub type DEBUG_EVENT = _DEBUG_EVENT;
pub type LPDEBUG_EVENT = *mut _DEBUG_EVENT;
pub type LPCONTEXT = PCONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONTRACT_DESCRIPTION {
    _unused: [u8; 0],
}
pub type CONTRACT_DESCRIPTION = _CONTRACT_DESCRIPTION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BEM_REFERENCE {
    _unused: [u8; 0],
}
pub type BEM_REFERENCE = _BEM_REFERENCE;
pub type BEM_FREE_INTERFACE_CALLBACK =
    ::std::option::Option<unsafe extern "C" fn(interfaceInstance: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub fn BemCreateReference(
        iid: *const GUID,
        interfaceInstance: *mut ::std::os::raw::c_void,
        freeCallback: BEM_FREE_INTERFACE_CALLBACK,
        reference: *mut *mut BEM_REFERENCE,
    ) -> HRESULT;
}
extern "C" {
    pub fn BemCreateContractFrom(
        dllPath: LPCWSTR,
        extensionId: *const GUID,
        contractDescription: *const CONTRACT_DESCRIPTION,
        hostContract: *mut ::std::os::raw::c_void,
        contract: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn BemCopyReference(
        reference: *mut BEM_REFERENCE,
        copiedReference: *mut *mut BEM_REFERENCE,
    ) -> HRESULT;
}
extern "C" {
    pub fn BemFreeReference(reference: *mut BEM_REFERENCE);
}
extern "C" {
    pub fn BemFreeContract(contract: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn IsDebuggerPresent() -> WINBOOL;
}
extern "C" {
    pub fn OutputDebugStringA(lpOutputString: LPCSTR);
}
extern "C" {
    pub fn OutputDebugStringW(lpOutputString: LPCWSTR);
}
extern "C" {
    pub fn DebugBreak();
}
extern "C" {
    pub fn ContinueDebugEvent(
        dwProcessId: DWORD,
        dwThreadId: DWORD,
        dwContinueStatus: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WaitForDebugEvent(lpDebugEvent: LPDEBUG_EVENT, dwMilliseconds: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn DebugActiveProcess(dwProcessId: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn DebugActiveProcessStop(dwProcessId: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CheckRemoteDebuggerPresent(hProcess: HANDLE, pbDebuggerPresent: PBOOL) -> WINBOOL;
}
pub type PTOP_LEVEL_EXCEPTION_FILTER =
    ::std::option::Option<unsafe extern "C" fn(ExceptionInfo: *mut _EXCEPTION_POINTERS) -> LONG>;
pub type LPTOP_LEVEL_EXCEPTION_FILTER = PTOP_LEVEL_EXCEPTION_FILTER;
extern "C" {
    pub fn SetErrorMode(uMode: UINT) -> UINT;
}
extern "C" {
    pub fn SetUnhandledExceptionFilter(
        lpTopLevelExceptionFilter: LPTOP_LEVEL_EXCEPTION_FILTER,
    ) -> LPTOP_LEVEL_EXCEPTION_FILTER;
}
extern "C" {
    pub fn UnhandledExceptionFilter(ExceptionInfo: *mut _EXCEPTION_POINTERS) -> LONG;
}
extern "C" {
    pub fn AddVectoredExceptionHandler(First: ULONG, Handler: PVECTORED_EXCEPTION_HANDLER)
        -> PVOID;
}
extern "C" {
    pub fn RemoveVectoredExceptionHandler(Handle: PVOID) -> ULONG;
}
extern "C" {
    pub fn AddVectoredContinueHandler(First: ULONG, Handler: PVECTORED_EXCEPTION_HANDLER) -> PVOID;
}
extern "C" {
    pub fn RemoveVectoredContinueHandler(Handle: PVOID) -> ULONG;
}
extern "C" {
    pub fn RaiseException(
        dwExceptionCode: DWORD,
        dwExceptionFlags: DWORD,
        nNumberOfArguments: DWORD,
        lpArguments: *const ULONG_PTR,
    );
}
extern "C" {
    pub fn GetLastError() -> DWORD;
}
extern "C" {
    pub fn SetLastError(dwErrCode: DWORD);
}
extern "C" {
    pub fn CreateFileW(
        lpFileName: LPCWSTR,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        dwCreationDisposition: DWORD,
        dwFlagsAndAttributes: DWORD,
        hTemplateFile: HANDLE,
    ) -> HANDLE;
}
extern "C" {
    pub fn GetFileAttributesW(lpFileName: LPCWSTR) -> DWORD;
}
extern "C" {
    pub fn GetFileSize(hFile: HANDLE, lpFileSizeHigh: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn SetFilePointer(
        hFile: HANDLE,
        lDistanceToMove: LONG,
        lpDistanceToMoveHigh: PLONG,
        dwMoveMethod: DWORD,
    ) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BY_HANDLE_FILE_INFORMATION {
    pub dwFileAttributes: DWORD,
    pub ftCreationTime: FILETIME,
    pub ftLastAccessTime: FILETIME,
    pub ftLastWriteTime: FILETIME,
    pub dwVolumeSerialNumber: DWORD,
    pub nFileSizeHigh: DWORD,
    pub nFileSizeLow: DWORD,
    pub nNumberOfLinks: DWORD,
    pub nFileIndexHigh: DWORD,
    pub nFileIndexLow: DWORD,
}
pub type BY_HANDLE_FILE_INFORMATION = _BY_HANDLE_FILE_INFORMATION;
pub type PBY_HANDLE_FILE_INFORMATION = *mut _BY_HANDLE_FILE_INFORMATION;
pub type LPBY_HANDLE_FILE_INFORMATION = *mut _BY_HANDLE_FILE_INFORMATION;
extern "C" {
    pub fn CreateFileA(
        lpFileName: LPCSTR,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        dwCreationDisposition: DWORD,
        dwFlagsAndAttributes: DWORD,
        hTemplateFile: HANDLE,
    ) -> HANDLE;
}
extern "C" {
    pub fn DefineDosDeviceW(
        dwFlags: DWORD,
        lpDeviceName: LPCWSTR,
        lpTargetPath: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindCloseChangeNotification(hChangeHandle: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn FindFirstChangeNotificationA(
        lpPathName: LPCSTR,
        bWatchSubtree: WINBOOL,
        dwNotifyFilter: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindFirstChangeNotificationW(
        lpPathName: LPCWSTR,
        bWatchSubtree: WINBOOL,
        dwNotifyFilter: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindFirstVolumeW(lpszVolumeName: LPWSTR, cchBufferLength: DWORD) -> HANDLE;
}
extern "C" {
    pub fn FindNextChangeNotification(hChangeHandle: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn FindNextVolumeW(
        hFindVolume: HANDLE,
        lpszVolumeName: LPWSTR,
        cchBufferLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindVolumeClose(hFindVolume: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn GetFileInformationByHandle(
        hFile: HANDLE,
        lpFileInformation: LPBY_HANDLE_FILE_INFORMATION,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CompareFileTime(lpFileTime1: *const FILETIME, lpFileTime2: *const FILETIME) -> LONG;
}
extern "C" {
    pub fn DeleteVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn FileTimeToLocalFileTime(
        lpFileTime: *const FILETIME,
        lpLocalFileTime: LPFILETIME,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: LPWIN32_FIND_DATAA) -> HANDLE;
}
extern "C" {
    pub fn FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: LPWIN32_FIND_DATAW) -> HANDLE;
}
extern "C" {
    pub fn GetDiskFreeSpaceA(
        lpRootPathName: LPCSTR,
        lpSectorsPerCluster: LPDWORD,
        lpBytesPerSector: LPDWORD,
        lpNumberOfFreeClusters: LPDWORD,
        lpTotalNumberOfClusters: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetDiskFreeSpaceW(
        lpRootPathName: LPCWSTR,
        lpSectorsPerCluster: LPDWORD,
        lpBytesPerSector: LPDWORD,
        lpNumberOfFreeClusters: LPDWORD,
        lpTotalNumberOfClusters: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetDriveTypeA(lpRootPathName: LPCSTR) -> UINT;
}
extern "C" {
    pub fn GetDriveTypeW(lpRootPathName: LPCWSTR) -> UINT;
}
extern "C" {
    pub fn GetFileAttributesA(lpFileName: LPCSTR) -> DWORD;
}
extern "C" {
    pub fn GetFileSizeEx(hFile: HANDLE, lpFileSize: PLARGE_INTEGER) -> WINBOOL;
}
extern "C" {
    pub fn GetFileTime(
        hFile: HANDLE,
        lpCreationTime: LPFILETIME,
        lpLastAccessTime: LPFILETIME,
        lpLastWriteTime: LPFILETIME,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetFileType(hFile: HANDLE) -> DWORD;
}
extern "C" {
    pub fn GetFullPathNameA(
        lpFileName: LPCSTR,
        nBufferLength: DWORD,
        lpBuffer: LPSTR,
        lpFilePart: *mut LPSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFullPathNameW(
        lpFileName: LPCWSTR,
        nBufferLength: DWORD,
        lpBuffer: LPWSTR,
        lpFilePart: *mut LPWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetLogicalDrives() -> DWORD;
}
extern "C" {
    pub fn GetLogicalDriveStringsW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
}
extern "C" {
    pub fn GetLongPathNameA(lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetLongPathNameW(
        lpszShortPath: LPCWSTR,
        lpszLongPath: LPWSTR,
        cchBuffer: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetShortPathNameW(
        lpszLongPath: LPCWSTR,
        lpszShortPath: LPWSTR,
        cchBuffer: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetTempFileNameA(
        lpPathName: LPCSTR,
        lpPrefixString: LPCSTR,
        uUnique: UINT,
        lpTempFileName: LPSTR,
    ) -> UINT;
}
extern "C" {
    pub fn GetTempFileNameW(
        lpPathName: LPCWSTR,
        lpPrefixString: LPCWSTR,
        uUnique: UINT,
        lpTempFileName: LPWSTR,
    ) -> UINT;
}
extern "C" {
    pub fn GetVolumeInformationW(
        lpRootPathName: LPCWSTR,
        lpVolumeNameBuffer: LPWSTR,
        nVolumeNameSize: DWORD,
        lpVolumeSerialNumber: LPDWORD,
        lpMaximumComponentLength: LPDWORD,
        lpFileSystemFlags: LPDWORD,
        lpFileSystemNameBuffer: LPWSTR,
        nFileSystemNameSize: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetVolumePathNameW(
        lpszFileName: LPCWSTR,
        lpszVolumePathName: LPWSTR,
        cchBufferLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LocalFileTimeToFileTime(
        lpLocalFileTime: *const FILETIME,
        lpFileTime: LPFILETIME,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LockFile(
        hFile: HANDLE,
        dwFileOffsetLow: DWORD,
        dwFileOffsetHigh: DWORD,
        nNumberOfBytesToLockLow: DWORD,
        nNumberOfBytesToLockHigh: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn QueryDosDeviceW(lpDeviceName: LPCWSTR, lpTargetPath: LPWSTR, ucchMax: DWORD) -> DWORD;
}
extern "C" {
    pub fn ReadFileEx(
        hFile: HANDLE,
        lpBuffer: LPVOID,
        nNumberOfBytesToRead: DWORD,
        lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadFileScatter(
        hFile: HANDLE,
        aSegmentArray: *mut FILE_SEGMENT_ELEMENT,
        nNumberOfBytesToRead: DWORD,
        lpReserved: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetFileTime(
        hFile: HANDLE,
        lpCreationTime: *const FILETIME,
        lpLastAccessTime: *const FILETIME,
        lpLastWriteTime: *const FILETIME,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetFileValidData(hFile: HANDLE, ValidDataLength: LONGLONG) -> WINBOOL;
}
extern "C" {
    pub fn UnlockFile(
        hFile: HANDLE,
        dwFileOffsetLow: DWORD,
        dwFileOffsetHigh: DWORD,
        nNumberOfBytesToUnlockLow: DWORD,
        nNumberOfBytesToUnlockHigh: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteFileEx(
        hFile: HANDLE,
        lpBuffer: LPCVOID,
        nNumberOfBytesToWrite: DWORD,
        lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteFileGather(
        hFile: HANDLE,
        aSegmentArray: *mut FILE_SEGMENT_ELEMENT,
        nNumberOfBytesToWrite: DWORD,
        lpReserved: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetVolumeNameForVolumeMountPointW(
        lpszVolumeMountPoint: LPCWSTR,
        lpszVolumeName: LPWSTR,
        cchBufferLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetVolumePathNamesForVolumeNameW(
        lpszVolumeName: LPCWSTR,
        lpszVolumePathNames: LPWCH,
        cchBufferLength: DWORD,
        lpcchReturnLength: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetTempPathA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
}
extern "C" {
    pub fn GetTempPathW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WIN32_FILE_ATTRIBUTE_DATA {
    pub dwFileAttributes: DWORD,
    pub ftCreationTime: FILETIME,
    pub ftLastAccessTime: FILETIME,
    pub ftLastWriteTime: FILETIME,
    pub nFileSizeHigh: DWORD,
    pub nFileSizeLow: DWORD,
}
pub type WIN32_FILE_ATTRIBUTE_DATA = _WIN32_FILE_ATTRIBUTE_DATA;
pub type LPWIN32_FILE_ATTRIBUTE_DATA = *mut _WIN32_FILE_ATTRIBUTE_DATA;
extern "C" {
    pub fn CreateDirectoryA(
        lpPathName: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateDirectoryW(
        lpPathName: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DeleteFileA(lpFileName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn DeleteFileW(lpFileName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn FindClose(hFindFile: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn FindFirstFileExA(
        lpFileName: LPCSTR,
        fInfoLevelId: FINDEX_INFO_LEVELS,
        lpFindFileData: LPVOID,
        fSearchOp: FINDEX_SEARCH_OPS,
        lpSearchFilter: LPVOID,
        dwAdditionalFlags: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindFirstFileExW(
        lpFileName: LPCWSTR,
        fInfoLevelId: FINDEX_INFO_LEVELS,
        lpFindFileData: LPVOID,
        fSearchOp: FINDEX_SEARCH_OPS,
        lpSearchFilter: LPVOID,
        dwAdditionalFlags: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindNextFileA(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAA) -> WINBOOL;
}
extern "C" {
    pub fn FindNextFileW(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAW) -> WINBOOL;
}
extern "C" {
    pub fn FlushFileBuffers(hFile: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn GetDiskFreeSpaceExA(
        lpDirectoryName: LPCSTR,
        lpFreeBytesAvailableToCaller: PULARGE_INTEGER,
        lpTotalNumberOfBytes: PULARGE_INTEGER,
        lpTotalNumberOfFreeBytes: PULARGE_INTEGER,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetDiskFreeSpaceExW(
        lpDirectoryName: LPCWSTR,
        lpFreeBytesAvailableToCaller: PULARGE_INTEGER,
        lpTotalNumberOfBytes: PULARGE_INTEGER,
        lpTotalNumberOfFreeBytes: PULARGE_INTEGER,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetFileAttributesExA(
        lpFileName: LPCSTR,
        fInfoLevelId: GET_FILEEX_INFO_LEVELS,
        lpFileInformation: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetFileAttributesExW(
        lpFileName: LPCWSTR,
        fInfoLevelId: GET_FILEEX_INFO_LEVELS,
        lpFileInformation: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LockFileEx(
        hFile: HANDLE,
        dwFlags: DWORD,
        dwReserved: DWORD,
        nNumberOfBytesToLockLow: DWORD,
        nNumberOfBytesToLockHigh: DWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadFile(
        hFile: HANDLE,
        lpBuffer: LPVOID,
        nNumberOfBytesToRead: DWORD,
        lpNumberOfBytesRead: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> WINBOOL;
}
extern "C" {
    pub fn RemoveDirectoryA(lpPathName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn RemoveDirectoryW(lpPathName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetEndOfFile(hFile: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetFilePointerEx(
        hFile: HANDLE,
        liDistanceToMove: LARGE_INTEGER,
        lpNewFilePointer: PLARGE_INTEGER,
        dwMoveMethod: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn UnlockFileEx(
        hFile: HANDLE,
        dwReserved: DWORD,
        nNumberOfBytesToUnlockLow: DWORD,
        nNumberOfBytesToUnlockHigh: DWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteFile(
        hFile: HANDLE,
        lpBuffer: LPCVOID,
        nNumberOfBytesToWrite: DWORD,
        lpNumberOfBytesWritten: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CloseHandle(hObject: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn DuplicateHandle(
        hSourceProcessHandle: HANDLE,
        hSourceHandle: HANDLE,
        hTargetProcessHandle: HANDLE,
        lpTargetHandle: LPHANDLE,
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        dwOptions: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetHandleInformation(hObject: HANDLE, lpdwFlags: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetHandleInformation(hObject: HANDLE, dwMask: DWORD, dwFlags: DWORD) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HEAP_SUMMARY {
    pub cb: DWORD,
    pub cbAllocated: SIZE_T,
    pub cbCommitted: SIZE_T,
    pub cbReserved: SIZE_T,
    pub cbMaxReserve: SIZE_T,
}
pub type HEAP_SUMMARY = _HEAP_SUMMARY;
pub type PHEAP_SUMMARY = *mut _HEAP_SUMMARY;
pub type LPHEAP_SUMMARY = PHEAP_SUMMARY;
extern "C" {
    pub fn HeapCreate(flOptions: DWORD, dwInitialSize: SIZE_T, dwMaximumSize: SIZE_T) -> HANDLE;
}
extern "C" {
    pub fn HeapDestroy(hHeap: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn HeapValidate(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID) -> WINBOOL;
}
extern "C" {
    pub fn HeapCompact(hHeap: HANDLE, dwFlags: DWORD) -> SIZE_T;
}
extern "C" {
    pub fn HeapSummary(hHeap: HANDLE, dwFlags: DWORD, lpSummary: LPHEAP_SUMMARY) -> WINBOOL;
}
extern "C" {
    pub fn GetProcessHeaps(NumberOfHeaps: DWORD, ProcessHeaps: PHANDLE) -> DWORD;
}
extern "C" {
    pub fn HeapLock(hHeap: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn HeapUnlock(hHeap: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn HeapWalk(hHeap: HANDLE, lpEntry: LPPROCESS_HEAP_ENTRY) -> WINBOOL;
}
extern "C" {
    pub fn HeapSetInformation(
        HeapHandle: HANDLE,
        HeapInformationClass: HEAP_INFORMATION_CLASS,
        HeapInformation: PVOID,
        HeapInformationLength: SIZE_T,
    ) -> WINBOOL;
}
extern "C" {
    pub fn HeapQueryInformation(
        HeapHandle: HANDLE,
        HeapInformationClass: HEAP_INFORMATION_CLASS,
        HeapInformation: PVOID,
        HeapInformationLength: SIZE_T,
        ReturnLength: PSIZE_T,
    ) -> WINBOOL;
}
extern "C" {
    pub fn HeapAlloc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) -> LPVOID;
}
extern "C" {
    pub fn HeapReAlloc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T) -> LPVOID;
}
extern "C" {
    pub fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID) -> WINBOOL;
}
extern "C" {
    pub fn HeapSize(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID) -> SIZE_T;
}
extern "C" {
    pub fn GetProcessHeap() -> HANDLE;
}
extern "C" {
    pub fn GetOverlappedResult(
        hFile: HANDLE,
        lpOverlapped: LPOVERLAPPED,
        lpNumberOfBytesTransferred: LPDWORD,
        bWait: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateIoCompletionPort(
        FileHandle: HANDLE,
        ExistingCompletionPort: HANDLE,
        CompletionKey: ULONG_PTR,
        NumberOfConcurrentThreads: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn GetQueuedCompletionStatus(
        CompletionPort: HANDLE,
        lpNumberOfBytesTransferred: LPDWORD,
        lpCompletionKey: PULONG_PTR,
        lpOverlapped: *mut LPOVERLAPPED,
        dwMilliseconds: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PostQueuedCompletionStatus(
        CompletionPort: HANDLE,
        dwNumberOfBytesTransferred: DWORD,
        dwCompletionKey: ULONG_PTR,
        lpOverlapped: LPOVERLAPPED,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DeviceIoControl(
        hDevice: HANDLE,
        dwIoControlCode: DWORD,
        lpInBuffer: LPVOID,
        nInBufferSize: DWORD,
        lpOutBuffer: LPVOID,
        nOutBufferSize: DWORD,
        lpBytesReturned: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CancelIo(hFile: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn GetOverlappedResultEx(
        hFile: HANDLE,
        lpOverlapped: LPOVERLAPPED,
        lpNumberOfBytesTransferred: LPDWORD,
        dwMilliseconds: DWORD,
        bAlertable: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn InitializeSListHead(ListHead: PSLIST_HEADER);
}
extern "C" {
    pub fn InterlockedPopEntrySList(ListHead: PSLIST_HEADER) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn InterlockedPushEntrySList(
        ListHead: PSLIST_HEADER,
        ListEntry: PSLIST_ENTRY,
    ) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn InterlockedFlushSList(ListHead: PSLIST_HEADER) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn QueryDepthSList(ListHead: PSLIST_HEADER) -> USHORT;
}
extern "C" {
    pub fn IsProcessInJob(ProcessHandle: HANDLE, JobHandle: HANDLE, Result: PBOOL) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagENUMUILANG {
    pub NumOfEnumUILang: ULONG,
    pub SizeOfEnumUIBuffer: ULONG,
    pub pEnumUIBuffer: *mut LANGID,
}
pub type ENUMUILANG = tagENUMUILANG;
pub type PENUMUILANG = *mut tagENUMUILANG;
pub type ENUMRESLANGPROCA = ::std::option::Option<
    unsafe extern "C" fn(
        hModule: HMODULE,
        lpType: LPCSTR,
        lpName: LPCSTR,
        wLanguage: WORD,
        lParam: LONG_PTR,
    ) -> WINBOOL,
>;
pub type ENUMRESLANGPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpName: LPCWSTR,
        wLanguage: WORD,
        lParam: LONG_PTR,
    ) -> WINBOOL,
>;
pub type ENUMRESNAMEPROCA = ::std::option::Option<
    unsafe extern "C" fn(
        hModule: HMODULE,
        lpType: LPCSTR,
        lpName: LPSTR,
        lParam: LONG_PTR,
    ) -> WINBOOL,
>;
pub type ENUMRESNAMEPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpName: LPWSTR,
        lParam: LONG_PTR,
    ) -> WINBOOL,
>;
pub type ENUMRESTYPEPROCA = ::std::option::Option<
    unsafe extern "C" fn(hModule: HMODULE, lpType: LPSTR, lParam: LONG_PTR) -> WINBOOL,
>;
pub type ENUMRESTYPEPROCW = ::std::option::Option<
    unsafe extern "C" fn(hModule: HMODULE, lpType: LPWSTR, lParam: LONG_PTR) -> WINBOOL,
>;
pub type PGET_MODULE_HANDLE_EXA = ::std::option::Option<
    unsafe extern "C" fn(dwFlags: DWORD, lpModuleName: LPCSTR, phModule: *mut HMODULE) -> WINBOOL,
>;
pub type PGET_MODULE_HANDLE_EXW = ::std::option::Option<
    unsafe extern "C" fn(dwFlags: DWORD, lpModuleName: LPCWSTR, phModule: *mut HMODULE) -> WINBOOL,
>;
pub type DLL_DIRECTORY_COOKIE = PVOID;
pub type PDLL_DIRECTORY_COOKIE = *mut PVOID;
extern "C" {
    pub fn EnumResourceNamesW(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpEnumFunc: ENUMRESNAMEPROCW,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindResourceW(hModule: HMODULE, lpName: LPCWSTR, lpType: LPCWSTR) -> HRSRC;
}
extern "C" {
    pub fn FindResourceExW(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpName: LPCWSTR,
        wLanguage: WORD,
    ) -> HRSRC;
}
extern "C" {
    pub fn FreeLibraryAndExitThread(hLibModule: HMODULE, dwExitCode: DWORD);
}
extern "C" {
    pub fn FreeResource(hResData: HGLOBAL) -> WINBOOL;
}
extern "C" {
    pub fn GetModuleHandleA(lpModuleName: LPCSTR) -> HMODULE;
}
extern "C" {
    pub fn GetModuleHandleW(lpModuleName: LPCWSTR) -> HMODULE;
}
extern "C" {
    pub fn LoadLibraryA(lpLibFileName: LPCSTR) -> HMODULE;
}
extern "C" {
    pub fn LoadLibraryW(lpLibFileName: LPCWSTR) -> HMODULE;
}
extern "C" {
    pub fn LoadLibraryExA(lpLibFileName: LPCSTR, hFile: HANDLE, dwFlags: DWORD) -> HMODULE;
}
extern "C" {
    pub fn LoadLibraryExW(lpLibFileName: LPCWSTR, hFile: HANDLE, dwFlags: DWORD) -> HMODULE;
}
extern "C" {
    pub fn LoadResource(hModule: HMODULE, hResInfo: HRSRC) -> HGLOBAL;
}
extern "C" {
    pub fn LoadStringA(
        hInstance: HINSTANCE,
        uID: UINT,
        lpBuffer: LPSTR,
        cchBufferMax: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn LoadStringW(
        hInstance: HINSTANCE,
        uID: UINT,
        lpBuffer: LPWSTR,
        cchBufferMax: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn LockResource(hResData: HGLOBAL) -> LPVOID;
}
extern "C" {
    pub fn SizeofResource(hModule: HMODULE, hResInfo: HRSRC) -> DWORD;
}
extern "C" {
    pub fn AddDllDirectory(NewDirectory: PCWSTR) -> DLL_DIRECTORY_COOKIE;
}
extern "C" {
    pub fn RemoveDllDirectory(Cookie: DLL_DIRECTORY_COOKIE) -> WINBOOL;
}
extern "C" {
    pub fn SetDefaultDllDirectories(DirectoryFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetModuleHandleExA(
        dwFlags: DWORD,
        lpModuleName: LPCSTR,
        phModule: *mut HMODULE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetModuleHandleExW(
        dwFlags: DWORD,
        lpModuleName: LPCWSTR,
        phModule: *mut HMODULE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumResourceLanguagesA(
        hModule: HMODULE,
        lpType: LPCSTR,
        lpName: LPCSTR,
        lpEnumFunc: ENUMRESLANGPROCA,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumResourceLanguagesW(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpName: LPCWSTR,
        lpEnumFunc: ENUMRESLANGPROCW,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DisableThreadLibraryCalls(hLibModule: HMODULE) -> WINBOOL;
}
extern "C" {
    pub fn FreeLibrary(hLibModule: HMODULE) -> WINBOOL;
}
extern "C" {
    pub fn GetProcAddress(hModule: HMODULE, lpProcName: LPCSTR) -> FARPROC;
}
extern "C" {
    pub fn GetModuleFileNameA(hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetModuleFileNameW(hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REDIRECTION_FUNCTION_DESCRIPTOR {
    pub DllName: PCSTR,
    pub FunctionName: PCSTR,
    pub RedirectionTarget: PVOID,
}
pub type REDIRECTION_FUNCTION_DESCRIPTOR = _REDIRECTION_FUNCTION_DESCRIPTOR;
pub type PREDIRECTION_FUNCTION_DESCRIPTOR = *mut _REDIRECTION_FUNCTION_DESCRIPTOR;
pub type PCREDIRECTION_FUNCTION_DESCRIPTOR = *const REDIRECTION_FUNCTION_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REDIRECTION_DESCRIPTOR {
    pub Version: ULONG,
    pub FunctionCount: ULONG,
    pub Redirections: PCREDIRECTION_FUNCTION_DESCRIPTOR,
}
pub type REDIRECTION_DESCRIPTOR = _REDIRECTION_DESCRIPTOR;
pub type PREDIRECTION_DESCRIPTOR = *mut _REDIRECTION_DESCRIPTOR;
pub type PCREDIRECTION_DESCRIPTOR = *const REDIRECTION_DESCRIPTOR;
pub const _MEMORY_RESOURCE_NOTIFICATION_TYPE_LowMemoryResourceNotification:
    _MEMORY_RESOURCE_NOTIFICATION_TYPE = 0;
pub const _MEMORY_RESOURCE_NOTIFICATION_TYPE_HighMemoryResourceNotification:
    _MEMORY_RESOURCE_NOTIFICATION_TYPE = 1;
pub type _MEMORY_RESOURCE_NOTIFICATION_TYPE = u32;
pub use self::_MEMORY_RESOURCE_NOTIFICATION_TYPE as MEMORY_RESOURCE_NOTIFICATION_TYPE;
extern "C" {
    pub fn VirtualFree(lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn VirtualQuery(
        lpAddress: LPCVOID,
        lpBuffer: PMEMORY_BASIC_INFORMATION,
        dwLength: SIZE_T,
    ) -> SIZE_T;
}
extern "C" {
    pub fn FlushViewOfFile(lpBaseAddress: LPCVOID, dwNumberOfBytesToFlush: SIZE_T) -> WINBOOL;
}
extern "C" {
    pub fn UnmapViewOfFile(lpBaseAddress: LPCVOID) -> WINBOOL;
}
extern "C" {
    pub fn CreateFileMappingFromApp(
        hFile: HANDLE,
        SecurityAttributes: PSECURITY_ATTRIBUTES,
        PageProtection: ULONG,
        MaximumSize: ULONG64,
        Name: PCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn MapViewOfFileFromApp(
        hFileMappingObject: HANDLE,
        DesiredAccess: ULONG,
        FileOffset: ULONG64,
        NumberOfBytesToMap: SIZE_T,
    ) -> PVOID;
}
extern "C" {
    pub fn VirtualProtect(
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        flNewProtect: DWORD,
        lpflOldProtect: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn VirtualAlloc(
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        flAllocationType: DWORD,
        flProtect: DWORD,
    ) -> LPVOID;
}
extern "C" {
    pub fn VirtualAllocEx(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        flAllocationType: DWORD,
        flProtect: DWORD,
    ) -> LPVOID;
}
extern "C" {
    pub fn VirtualFreeEx(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        dwFreeType: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn VirtualProtectEx(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        flNewProtect: DWORD,
        lpflOldProtect: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn VirtualQueryEx(
        hProcess: HANDLE,
        lpAddress: LPCVOID,
        lpBuffer: PMEMORY_BASIC_INFORMATION,
        dwLength: SIZE_T,
    ) -> SIZE_T;
}
extern "C" {
    pub fn ReadProcessMemory(
        hProcess: HANDLE,
        lpBaseAddress: LPCVOID,
        lpBuffer: LPVOID,
        nSize: SIZE_T,
        lpNumberOfBytesRead: *mut SIZE_T,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteProcessMemory(
        hProcess: HANDLE,
        lpBaseAddress: LPVOID,
        lpBuffer: LPCVOID,
        nSize: SIZE_T,
        lpNumberOfBytesWritten: *mut SIZE_T,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateFileMappingW(
        hFile: HANDLE,
        lpFileMappingAttributes: LPSECURITY_ATTRIBUTES,
        flProtect: DWORD,
        dwMaximumSizeHigh: DWORD,
        dwMaximumSizeLow: DWORD,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenFileMappingW(
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn MapViewOfFile(
        hFileMappingObject: HANDLE,
        dwDesiredAccess: DWORD,
        dwFileOffsetHigh: DWORD,
        dwFileOffsetLow: DWORD,
        dwNumberOfBytesToMap: SIZE_T,
    ) -> LPVOID;
}
extern "C" {
    pub fn MapViewOfFileEx(
        hFileMappingObject: HANDLE,
        dwDesiredAccess: DWORD,
        dwFileOffsetHigh: DWORD,
        dwFileOffsetLow: DWORD,
        dwNumberOfBytesToMap: SIZE_T,
        lpBaseAddress: LPVOID,
    ) -> LPVOID;
}
extern "C" {
    pub fn GetLargePageMinimum() -> SIZE_T;
}
extern "C" {
    pub fn GetProcessWorkingSetSizeEx(
        hProcess: HANDLE,
        lpMinimumWorkingSetSize: PSIZE_T,
        lpMaximumWorkingSetSize: PSIZE_T,
        Flags: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetProcessWorkingSetSizeEx(
        hProcess: HANDLE,
        dwMinimumWorkingSetSize: SIZE_T,
        dwMaximumWorkingSetSize: SIZE_T,
        Flags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn VirtualLock(lpAddress: LPVOID, dwSize: SIZE_T) -> WINBOOL;
}
extern "C" {
    pub fn VirtualUnlock(lpAddress: LPVOID, dwSize: SIZE_T) -> WINBOOL;
}
extern "C" {
    pub fn GetWriteWatch(
        dwFlags: DWORD,
        lpBaseAddress: PVOID,
        dwRegionSize: SIZE_T,
        lpAddresses: *mut PVOID,
        lpdwCount: *mut ULONG_PTR,
        lpdwGranularity: LPDWORD,
    ) -> UINT;
}
extern "C" {
    pub fn ResetWriteWatch(lpBaseAddress: LPVOID, dwRegionSize: SIZE_T) -> UINT;
}
extern "C" {
    pub fn CreateMemoryResourceNotification(
        NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE,
    ) -> HANDLE;
}
extern "C" {
    pub fn QueryMemoryResourceNotification(
        ResourceNotificationHandle: HANDLE,
        ResourceState: PBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetSystemFileCacheSize(
        lpMinimumFileCacheSize: PSIZE_T,
        lpMaximumFileCacheSize: PSIZE_T,
        lpFlags: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetSystemFileCacheSize(
        MinimumFileCacheSize: SIZE_T,
        MaximumFileCacheSize: SIZE_T,
        Flags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ImpersonateNamedPipeClient(hNamedPipe: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn CreatePipe(
        hReadPipe: PHANDLE,
        hWritePipe: PHANDLE,
        lpPipeAttributes: LPSECURITY_ATTRIBUTES,
        nSize: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ConnectNamedPipe(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED) -> WINBOOL;
}
extern "C" {
    pub fn DisconnectNamedPipe(hNamedPipe: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn SetNamedPipeHandleState(
        hNamedPipe: HANDLE,
        lpMode: LPDWORD,
        lpMaxCollectionCount: LPDWORD,
        lpCollectDataTimeout: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PeekNamedPipe(
        hNamedPipe: HANDLE,
        lpBuffer: LPVOID,
        nBufferSize: DWORD,
        lpBytesRead: LPDWORD,
        lpTotalBytesAvail: LPDWORD,
        lpBytesLeftThisMessage: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn TransactNamedPipe(
        hNamedPipe: HANDLE,
        lpInBuffer: LPVOID,
        nInBufferSize: DWORD,
        lpOutBuffer: LPVOID,
        nOutBufferSize: DWORD,
        lpBytesRead: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateNamedPipeW(
        lpName: LPCWSTR,
        dwOpenMode: DWORD,
        dwPipeMode: DWORD,
        nMaxInstances: DWORD,
        nOutBufferSize: DWORD,
        nInBufferSize: DWORD,
        nDefaultTimeOut: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> HANDLE;
}
extern "C" {
    pub fn WaitNamedPipeW(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CreatePrivateNamespaceW(
        lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES,
        lpBoundaryDescriptor: LPVOID,
        lpAliasPrefix: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenPrivateNamespaceW(lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn ClosePrivateNamespace(Handle: HANDLE, Flags: ULONG) -> BOOLEAN;
}
extern "C" {
    pub fn CreateBoundaryDescriptorW(Name: LPCWSTR, Flags: ULONG) -> HANDLE;
}
extern "C" {
    pub fn AddSIDToBoundaryDescriptor(
        BoundaryDescriptor: *mut HANDLE,
        RequiredSid: PSID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DeleteBoundaryDescriptor(BoundaryDescriptor: HANDLE);
}
extern "C" {
    pub fn SetEnvironmentStringsW(NewEnvironment: LPWCH) -> WINBOOL;
}
extern "C" {
    pub fn GetCommandLineA() -> LPSTR;
}
extern "C" {
    pub fn GetCommandLineW() -> LPWSTR;
}
extern "C" {
    pub fn SetCurrentDirectoryA(lpPathName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetCurrentDirectoryW(lpPathName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetCurrentDirectoryA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
}
extern "C" {
    pub fn GetCurrentDirectoryW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
}
extern "C" {
    pub fn SearchPathW(
        lpPath: LPCWSTR,
        lpFileName: LPCWSTR,
        lpExtension: LPCWSTR,
        nBufferLength: DWORD,
        lpBuffer: LPWSTR,
        lpFilePart: *mut LPWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn SearchPathA(
        lpPath: LPCSTR,
        lpFileName: LPCSTR,
        lpExtension: LPCSTR,
        nBufferLength: DWORD,
        lpBuffer: LPSTR,
        lpFilePart: *mut LPSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn NeedCurrentDirectoryForExePathA(ExeName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn NeedCurrentDirectoryForExePathW(ExeName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetEnvironmentStrings() -> LPCH;
}
extern "C" {
    pub fn GetEnvironmentStringsW() -> LPWCH;
}
extern "C" {
    pub fn GetStdHandle(nStdHandle: DWORD) -> HANDLE;
}
extern "C" {
    pub fn ExpandEnvironmentStringsA(lpSrc: LPCSTR, lpDst: LPSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn ExpandEnvironmentStringsW(lpSrc: LPCWSTR, lpDst: LPWSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn FreeEnvironmentStringsA(penv: LPCH) -> WINBOOL;
}
extern "C" {
    pub fn FreeEnvironmentStringsW(penv: LPWCH) -> WINBOOL;
}
extern "C" {
    pub fn GetEnvironmentVariableA(lpName: LPCSTR, lpBuffer: LPSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetEnvironmentVariableW(lpName: LPCWSTR, lpBuffer: LPWSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn SetEnvironmentVariableA(lpName: LPCSTR, lpValue: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetEnvironmentVariableW(lpName: LPCWSTR, lpValue: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetStdHandle(nStdHandle: DWORD, hHandle: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> WINBOOL;
}
extern "C" {
    pub fn OpenProcess(
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        dwProcessId: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn QueueUserAPC(pfnAPC: PAPCFUNC, hThread: HANDLE, dwData: ULONG_PTR) -> DWORD;
}
extern "C" {
    pub fn GetProcessTimes(
        hProcess: HANDLE,
        lpCreationTime: LPFILETIME,
        lpExitTime: LPFILETIME,
        lpKernelTime: LPFILETIME,
        lpUserTime: LPFILETIME,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ExitProcess(uExitCode: UINT);
}
extern "C" {
    pub fn GetExitCodeProcess(hProcess: HANDLE, lpExitCode: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn SwitchToThread() -> WINBOOL;
}
extern "C" {
    pub fn OpenThread(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, dwThreadId: DWORD)
        -> HANDLE;
}
extern "C" {
    pub fn SetThreadPriorityBoost(hThread: HANDLE, bDisablePriorityBoost: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GetThreadPriorityBoost(hThread: HANDLE, pDisablePriorityBoost: PBOOL) -> WINBOOL;
}
extern "C" {
    pub fn SetThreadToken(Thread: PHANDLE, Token: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn OpenProcessToken(
        ProcessHandle: HANDLE,
        DesiredAccess: DWORD,
        TokenHandle: PHANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn OpenThreadToken(
        ThreadHandle: HANDLE,
        DesiredAccess: DWORD,
        OpenAsSelf: WINBOOL,
        TokenHandle: PHANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetPriorityClass(hProcess: HANDLE, dwPriorityClass: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetPriorityClass(hProcess: HANDLE) -> DWORD;
}
extern "C" {
    pub fn GetProcessId(Process: HANDLE) -> DWORD;
}
extern "C" {
    pub fn GetThreadId(Thread: HANDLE) -> DWORD;
}
extern "C" {
    pub fn GetThreadContext(hThread: HANDLE, lpContext: LPCONTEXT) -> WINBOOL;
}
extern "C" {
    pub fn FlushInstructionCache(
        hProcess: HANDLE,
        lpBaseAddress: LPCVOID,
        dwSize: SIZE_T,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetThreadTimes(
        hThread: HANDLE,
        lpCreationTime: LPFILETIME,
        lpExitTime: LPFILETIME,
        lpKernelTime: LPFILETIME,
        lpUserTime: LPFILETIME,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetCurrentProcessorNumber() -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_INFORMATION {
    pub hProcess: HANDLE,
    pub hThread: HANDLE,
    pub dwProcessId: DWORD,
    pub dwThreadId: DWORD,
}
pub type PROCESS_INFORMATION = _PROCESS_INFORMATION;
pub type PPROCESS_INFORMATION = *mut _PROCESS_INFORMATION;
pub type LPPROCESS_INFORMATION = *mut _PROCESS_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROC_THREAD_ATTRIBUTE_LIST {
    _unused: [u8; 0],
}
pub type PPROC_THREAD_ATTRIBUTE_LIST = *mut _PROC_THREAD_ATTRIBUTE_LIST;
pub type LPPROC_THREAD_ATTRIBUTE_LIST = *mut _PROC_THREAD_ATTRIBUTE_LIST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STARTUPINFOA {
    pub cb: DWORD,
    pub lpReserved: LPSTR,
    pub lpDesktop: LPSTR,
    pub lpTitle: LPSTR,
    pub dwX: DWORD,
    pub dwY: DWORD,
    pub dwXSize: DWORD,
    pub dwYSize: DWORD,
    pub dwXCountChars: DWORD,
    pub dwYCountChars: DWORD,
    pub dwFillAttribute: DWORD,
    pub dwFlags: DWORD,
    pub wShowWindow: WORD,
    pub cbReserved2: WORD,
    pub lpReserved2: LPBYTE,
    pub hStdInput: HANDLE,
    pub hStdOutput: HANDLE,
    pub hStdError: HANDLE,
}
pub type STARTUPINFOA = _STARTUPINFOA;
pub type LPSTARTUPINFOA = *mut _STARTUPINFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STARTUPINFOW {
    pub cb: DWORD,
    pub lpReserved: LPWSTR,
    pub lpDesktop: LPWSTR,
    pub lpTitle: LPWSTR,
    pub dwX: DWORD,
    pub dwY: DWORD,
    pub dwXSize: DWORD,
    pub dwYSize: DWORD,
    pub dwXCountChars: DWORD,
    pub dwYCountChars: DWORD,
    pub dwFillAttribute: DWORD,
    pub dwFlags: DWORD,
    pub wShowWindow: WORD,
    pub cbReserved2: WORD,
    pub lpReserved2: LPBYTE,
    pub hStdInput: HANDLE,
    pub hStdOutput: HANDLE,
    pub hStdError: HANDLE,
}
pub type STARTUPINFOW = _STARTUPINFOW;
pub type LPSTARTUPINFOW = *mut _STARTUPINFOW;
pub type STARTUPINFO = STARTUPINFOA;
pub type LPSTARTUPINFO = LPSTARTUPINFOA;
extern "C" {
    pub fn CreateRemoteThread(
        hProcess: HANDLE,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        dwStackSize: SIZE_T,
        lpStartAddress: LPTHREAD_START_ROUTINE,
        lpParameter: LPVOID,
        dwCreationFlags: DWORD,
        lpThreadId: LPDWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn TerminateThread(hThread: HANDLE, dwExitCode: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetProcessShutdownParameters(dwLevel: DWORD, dwFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetProcessVersion(ProcessId: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetStartupInfoW(lpStartupInfo: LPSTARTUPINFOW);
}
extern "C" {
    pub fn SetThreadStackGuarantee(StackSizeInBytes: PULONG) -> WINBOOL;
}
extern "C" {
    pub fn ProcessIdToSessionId(dwProcessId: DWORD, pSessionId: *mut DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CreateRemoteThreadEx(
        hProcess: HANDLE,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        dwStackSize: SIZE_T,
        lpStartAddress: LPTHREAD_START_ROUTINE,
        lpParameter: LPVOID,
        dwCreationFlags: DWORD,
        lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST,
        lpThreadId: LPDWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn SetThreadContext(hThread: HANDLE, lpContext: *const CONTEXT) -> WINBOOL;
}
extern "C" {
    pub fn GetProcessHandleCount(hProcess: HANDLE, pdwHandleCount: PDWORD) -> WINBOOL;
}
extern "C" {
    pub fn CreateProcessA(
        lpApplicationName: LPCSTR,
        lpCommandLine: LPSTR,
        lpProcessAttributes: LPSECURITY_ATTRIBUTES,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        bInheritHandles: WINBOOL,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCSTR,
        lpStartupInfo: LPSTARTUPINFOA,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateProcessW(
        lpApplicationName: LPCWSTR,
        lpCommandLine: LPWSTR,
        lpProcessAttributes: LPSECURITY_ATTRIBUTES,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        bInheritHandles: WINBOOL,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCWSTR,
        lpStartupInfo: LPSTARTUPINFOW,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateProcessAsUserW(
        hToken: HANDLE,
        lpApplicationName: LPCWSTR,
        lpCommandLine: LPWSTR,
        lpProcessAttributes: LPSECURITY_ATTRIBUTES,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        bInheritHandles: WINBOOL,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCWSTR,
        lpStartupInfo: LPSTARTUPINFOW,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetCurrentProcess() -> HANDLE;
}
extern "C" {
    pub fn GetCurrentProcessId() -> DWORD;
}
extern "C" {
    pub fn GetCurrentThread() -> HANDLE;
}
extern "C" {
    pub fn GetCurrentThreadId() -> DWORD;
}
extern "C" {
    pub fn IsProcessorFeaturePresent(ProcessorFeature: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CreateThread(
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        dwStackSize: SIZE_T,
        lpStartAddress: LPTHREAD_START_ROUTINE,
        lpParameter: LPVOID,
        dwCreationFlags: DWORD,
        lpThreadId: LPDWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn SetThreadPriority(hThread: HANDLE, nPriority: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn GetThreadPriority(hThread: HANDLE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ExitThread(dwExitCode: DWORD);
}
extern "C" {
    pub fn GetExitCodeThread(hThread: HANDLE, lpExitCode: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn SuspendThread(hThread: HANDLE) -> DWORD;
}
extern "C" {
    pub fn ResumeThread(hThread: HANDLE) -> DWORD;
}
extern "C" {
    pub fn TlsAlloc() -> DWORD;
}
extern "C" {
    pub fn TlsGetValue(dwTlsIndex: DWORD) -> LPVOID;
}
extern "C" {
    pub fn TlsSetValue(dwTlsIndex: DWORD, lpTlsValue: LPVOID) -> WINBOOL;
}
extern "C" {
    pub fn TlsFree(dwTlsIndex: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn QueryPerformanceCounter(lpPerformanceCount: *mut LARGE_INTEGER) -> WINBOOL;
}
extern "C" {
    pub fn QueryPerformanceFrequency(lpFrequency: *mut LARGE_INTEGER) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheck(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        PrivilegeSet: PPRIVILEGE_SET,
        PrivilegeSetLength: LPDWORD,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckAndAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPWSTR,
        ObjectName: LPWSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        DesiredAccess: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: WINBOOL,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
        pfGenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckByType(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        PrincipalSelfSid: PSID,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        ObjectTypeList: POBJECT_TYPE_LIST,
        ObjectTypeListLength: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        PrivilegeSet: PPRIVILEGE_SET,
        PrivilegeSetLength: LPDWORD,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckByTypeResultList(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        PrincipalSelfSid: PSID,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        ObjectTypeList: POBJECT_TYPE_LIST,
        ObjectTypeListLength: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        PrivilegeSet: PPRIVILEGE_SET,
        PrivilegeSetLength: LPDWORD,
        GrantedAccessList: LPDWORD,
        AccessStatusList: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckByTypeAndAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPCWSTR,
        ObjectName: LPCWSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        PrincipalSelfSid: PSID,
        DesiredAccess: DWORD,
        AuditType: AUDIT_EVENT_TYPE,
        Flags: DWORD,
        ObjectTypeList: POBJECT_TYPE_LIST,
        ObjectTypeListLength: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: WINBOOL,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
        pfGenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckByTypeResultListAndAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPCWSTR,
        ObjectName: LPCWSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        PrincipalSelfSid: PSID,
        DesiredAccess: DWORD,
        AuditType: AUDIT_EVENT_TYPE,
        Flags: DWORD,
        ObjectTypeList: POBJECT_TYPE_LIST,
        ObjectTypeListLength: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: WINBOOL,
        GrantedAccessList: LPDWORD,
        AccessStatusList: LPDWORD,
        pfGenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckByTypeResultListAndAuditAlarmByHandleW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        ClientToken: HANDLE,
        ObjectTypeName: LPCWSTR,
        ObjectName: LPCWSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        PrincipalSelfSid: PSID,
        DesiredAccess: DWORD,
        AuditType: AUDIT_EVENT_TYPE,
        Flags: DWORD,
        ObjectTypeList: POBJECT_TYPE_LIST,
        ObjectTypeListLength: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: WINBOOL,
        GrantedAccessList: LPDWORD,
        AccessStatusList: LPDWORD,
        pfGenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAccessAllowedAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAccessAllowedAceEx(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAccessAllowedObjectAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        ObjectTypeGuid: *mut GUID,
        InheritedObjectTypeGuid: *mut GUID,
        pSid: PSID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAccessDeniedAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAccessDeniedAceEx(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAccessDeniedObjectAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        ObjectTypeGuid: *mut GUID,
        InheritedObjectTypeGuid: *mut GUID,
        pSid: PSID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        dwStartingAceIndex: DWORD,
        pAceList: LPVOID,
        nAceListLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAuditAccessAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        dwAccessMask: DWORD,
        pSid: PSID,
        bAuditSuccess: WINBOOL,
        bAuditFailure: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAuditAccessAceEx(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        dwAccessMask: DWORD,
        pSid: PSID,
        bAuditSuccess: WINBOOL,
        bAuditFailure: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AddAuditAccessObjectAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        ObjectTypeGuid: *mut GUID,
        InheritedObjectTypeGuid: *mut GUID,
        pSid: PSID,
        bAuditSuccess: WINBOOL,
        bAuditFailure: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AdjustTokenGroups(
        TokenHandle: HANDLE,
        ResetToDefault: WINBOOL,
        NewState: PTOKEN_GROUPS,
        BufferLength: DWORD,
        PreviousState: PTOKEN_GROUPS,
        ReturnLength: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AdjustTokenPrivileges(
        TokenHandle: HANDLE,
        DisableAllPrivileges: WINBOOL,
        NewState: PTOKEN_PRIVILEGES,
        BufferLength: DWORD,
        PreviousState: PTOKEN_PRIVILEGES,
        ReturnLength: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AllocateAndInitializeSid(
        pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY,
        nSubAuthorityCount: BYTE,
        nSubAuthority0: DWORD,
        nSubAuthority1: DWORD,
        nSubAuthority2: DWORD,
        nSubAuthority3: DWORD,
        nSubAuthority4: DWORD,
        nSubAuthority5: DWORD,
        nSubAuthority6: DWORD,
        nSubAuthority7: DWORD,
        pSid: *mut PSID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AllocateLocallyUniqueId(Luid: PLUID) -> WINBOOL;
}
extern "C" {
    pub fn AreAllAccessesGranted(GrantedAccess: DWORD, DesiredAccess: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn AreAnyAccessesGranted(GrantedAccess: DWORD, DesiredAccess: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CheckTokenMembership(TokenHandle: HANDLE, SidToCheck: PSID, IsMember: PBOOL) -> WINBOOL;
}
extern "C" {
    pub fn ConvertToAutoInheritPrivateObjectSecurity(
        ParentDescriptor: PSECURITY_DESCRIPTOR,
        CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR,
        NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR,
        ObjectType: *mut GUID,
        IsDirectoryObject: BOOLEAN,
        GenericMapping: PGENERIC_MAPPING,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CopySid(
        nDestinationSidLength: DWORD,
        pDestinationSid: PSID,
        pSourceSid: PSID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreatePrivateObjectSecurity(
        ParentDescriptor: PSECURITY_DESCRIPTOR,
        CreatorDescriptor: PSECURITY_DESCRIPTOR,
        NewDescriptor: *mut PSECURITY_DESCRIPTOR,
        IsDirectoryObject: WINBOOL,
        Token: HANDLE,
        GenericMapping: PGENERIC_MAPPING,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreatePrivateObjectSecurityEx(
        ParentDescriptor: PSECURITY_DESCRIPTOR,
        CreatorDescriptor: PSECURITY_DESCRIPTOR,
        NewDescriptor: *mut PSECURITY_DESCRIPTOR,
        ObjectType: *mut GUID,
        IsContainerObject: WINBOOL,
        AutoInheritFlags: ULONG,
        Token: HANDLE,
        GenericMapping: PGENERIC_MAPPING,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreatePrivateObjectSecurityWithMultipleInheritance(
        ParentDescriptor: PSECURITY_DESCRIPTOR,
        CreatorDescriptor: PSECURITY_DESCRIPTOR,
        NewDescriptor: *mut PSECURITY_DESCRIPTOR,
        ObjectTypes: *mut *mut GUID,
        GuidCount: ULONG,
        IsContainerObject: WINBOOL,
        AutoInheritFlags: ULONG,
        Token: HANDLE,
        GenericMapping: PGENERIC_MAPPING,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateRestrictedToken(
        ExistingTokenHandle: HANDLE,
        Flags: DWORD,
        DisableSidCount: DWORD,
        SidsToDisable: PSID_AND_ATTRIBUTES,
        DeletePrivilegeCount: DWORD,
        PrivilegesToDelete: PLUID_AND_ATTRIBUTES,
        RestrictedSidCount: DWORD,
        SidsToRestrict: PSID_AND_ATTRIBUTES,
        NewTokenHandle: PHANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateWellKnownSid(
        WellKnownSidType: WELL_KNOWN_SID_TYPE,
        DomainSid: PSID,
        pSid: PSID,
        cbSid: *mut DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EqualDomainSid(pSid1: PSID, pSid2: PSID, pfEqual: *mut WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn DeleteAce(pAcl: PACL, dwAceIndex: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn DestroyPrivateObjectSecurity(ObjectDescriptor: *mut PSECURITY_DESCRIPTOR) -> WINBOOL;
}
extern "C" {
    pub fn DuplicateToken(
        ExistingTokenHandle: HANDLE,
        ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
        DuplicateTokenHandle: PHANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DuplicateTokenEx(
        hExistingToken: HANDLE,
        dwDesiredAccess: DWORD,
        lpTokenAttributes: LPSECURITY_ATTRIBUTES,
        ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
        TokenType: TOKEN_TYPE,
        phNewToken: PHANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EqualPrefixSid(pSid1: PSID, pSid2: PSID) -> WINBOOL;
}
extern "C" {
    pub fn EqualSid(pSid1: PSID, pSid2: PSID) -> WINBOOL;
}
extern "C" {
    pub fn FindFirstFreeAce(pAcl: PACL, pAce: *mut LPVOID) -> WINBOOL;
}
extern "C" {
    pub fn FreeSid(pSid: PSID) -> PVOID;
}
extern "C" {
    pub fn GetAce(pAcl: PACL, dwAceIndex: DWORD, pAce: *mut LPVOID) -> WINBOOL;
}
extern "C" {
    pub fn GetAclInformation(
        pAcl: PACL,
        pAclInformation: LPVOID,
        nAclInformationLength: DWORD,
        dwAclInformationClass: ACL_INFORMATION_CLASS,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetFileSecurityW(
        lpFileName: LPCWSTR,
        RequestedInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetKernelObjectSecurity(
        Handle: HANDLE,
        RequestedInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetLengthSid(pSid: PSID) -> DWORD;
}
extern "C" {
    pub fn GetPrivateObjectSecurity(
        ObjectDescriptor: PSECURITY_DESCRIPTOR,
        SecurityInformation: SECURITY_INFORMATION,
        ResultantDescriptor: PSECURITY_DESCRIPTOR,
        DescriptorLength: DWORD,
        ReturnLength: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetSecurityDescriptorControl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pControl: PSECURITY_DESCRIPTOR_CONTROL,
        lpdwRevision: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetSecurityDescriptorDacl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        lpbDaclPresent: LPBOOL,
        pDacl: *mut PACL,
        lpbDaclDefaulted: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetSecurityDescriptorGroup(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pGroup: *mut PSID,
        lpbGroupDefaulted: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetSecurityDescriptorLength(pSecurityDescriptor: PSECURITY_DESCRIPTOR) -> DWORD;
}
extern "C" {
    pub fn GetSecurityDescriptorOwner(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pOwner: *mut PSID,
        lpbOwnerDefaulted: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetSecurityDescriptorRMControl(
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        RMControl: PUCHAR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetSecurityDescriptorSacl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        lpbSaclPresent: LPBOOL,
        pSacl: *mut PACL,
        lpbSaclDefaulted: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetSidIdentifierAuthority(pSid: PSID) -> PSID_IDENTIFIER_AUTHORITY;
}
extern "C" {
    pub fn GetSidLengthRequired(nSubAuthorityCount: UCHAR) -> DWORD;
}
extern "C" {
    pub fn GetSidSubAuthority(pSid: PSID, nSubAuthority: DWORD) -> PDWORD;
}
extern "C" {
    pub fn GetSidSubAuthorityCount(pSid: PSID) -> PUCHAR;
}
extern "C" {
    pub fn GetTokenInformation(
        TokenHandle: HANDLE,
        TokenInformationClass: TOKEN_INFORMATION_CLASS,
        TokenInformation: LPVOID,
        TokenInformationLength: DWORD,
        ReturnLength: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetWindowsAccountDomainSid(
        pSid: PSID,
        pDomainSid: PSID,
        cbDomainSid: *mut DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ImpersonateAnonymousToken(ThreadHandle: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn ImpersonateLoggedOnUser(hToken: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn ImpersonateSelf(ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL) -> WINBOOL;
}
extern "C" {
    pub fn InitializeAcl(pAcl: PACL, nAclLength: DWORD, dwAclRevision: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn InitializeSecurityDescriptor(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        dwRevision: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn InitializeSid(
        Sid: PSID,
        pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY,
        nSubAuthorityCount: BYTE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn IsTokenRestricted(TokenHandle: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn IsValidAcl(pAcl: PACL) -> WINBOOL;
}
extern "C" {
    pub fn IsValidSecurityDescriptor(pSecurityDescriptor: PSECURITY_DESCRIPTOR) -> WINBOOL;
}
extern "C" {
    pub fn IsValidSid(pSid: PSID) -> WINBOOL;
}
extern "C" {
    pub fn IsWellKnownSid(pSid: PSID, WellKnownSidType: WELL_KNOWN_SID_TYPE) -> WINBOOL;
}
extern "C" {
    pub fn MakeAbsoluteSD(
        pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pAbsoluteSecurityDescriptor: PSECURITY_DESCRIPTOR,
        lpdwAbsoluteSecurityDescriptorSize: LPDWORD,
        pDacl: PACL,
        lpdwDaclSize: LPDWORD,
        pSacl: PACL,
        lpdwSaclSize: LPDWORD,
        pOwner: PSID,
        lpdwOwnerSize: LPDWORD,
        pPrimaryGroup: PSID,
        lpdwPrimaryGroupSize: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MakeSelfRelativeSD(
        pAbsoluteSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR,
        lpdwBufferLength: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MapGenericMask(AccessMask: PDWORD, GenericMapping: PGENERIC_MAPPING);
}
extern "C" {
    pub fn ObjectCloseAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        GenerateOnClose: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ObjectDeleteAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        GenerateOnClose: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ObjectOpenAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPWSTR,
        ObjectName: LPWSTR,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        GrantedAccess: DWORD,
        Privileges: PPRIVILEGE_SET,
        ObjectCreation: WINBOOL,
        AccessGranted: WINBOOL,
        GenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ObjectPrivilegeAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        Privileges: PPRIVILEGE_SET,
        AccessGranted: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PrivilegeCheck(
        ClientToken: HANDLE,
        RequiredPrivileges: PPRIVILEGE_SET,
        pfResult: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PrivilegedServiceAuditAlarmW(
        SubsystemName: LPCWSTR,
        ServiceName: LPCWSTR,
        ClientToken: HANDLE,
        Privileges: PPRIVILEGE_SET,
        AccessGranted: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn RevertToSelf() -> WINBOOL;
}
extern "C" {
    pub fn SetAclInformation(
        pAcl: PACL,
        pAclInformation: LPVOID,
        nAclInformationLength: DWORD,
        dwAclInformationClass: ACL_INFORMATION_CLASS,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetFileSecurityW(
        lpFileName: LPCWSTR,
        SecurityInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetKernelObjectSecurity(
        Handle: HANDLE,
        SecurityInformation: SECURITY_INFORMATION,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetPrivateObjectSecurity(
        SecurityInformation: SECURITY_INFORMATION,
        ModificationDescriptor: PSECURITY_DESCRIPTOR,
        ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR,
        GenericMapping: PGENERIC_MAPPING,
        Token: HANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetPrivateObjectSecurityEx(
        SecurityInformation: SECURITY_INFORMATION,
        ModificationDescriptor: PSECURITY_DESCRIPTOR,
        ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR,
        AutoInheritFlags: ULONG,
        GenericMapping: PGENERIC_MAPPING,
        Token: HANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetSecurityDescriptorControl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL,
        ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetSecurityDescriptorDacl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        bDaclPresent: WINBOOL,
        pDacl: PACL,
        bDaclDefaulted: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetSecurityDescriptorGroup(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pGroup: PSID,
        bGroupDefaulted: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetSecurityDescriptorOwner(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pOwner: PSID,
        bOwnerDefaulted: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetSecurityDescriptorRMControl(
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        RMControl: PUCHAR,
    ) -> DWORD;
}
extern "C" {
    pub fn SetSecurityDescriptorSacl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        bSaclPresent: WINBOOL,
        pSacl: PACL,
        bSaclDefaulted: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetTokenInformation(
        TokenHandle: HANDLE,
        TokenInformationClass: TOKEN_INFORMATION_CLASS,
        TokenInformation: LPVOID,
        TokenInformationLength: DWORD,
    ) -> WINBOOL;
}
pub type SRWLOCK = RTL_SRWLOCK;
pub type PSRWLOCK = *mut RTL_SRWLOCK;
pub type INIT_ONCE = RTL_RUN_ONCE;
pub type PINIT_ONCE = PRTL_RUN_ONCE;
pub type LPINIT_ONCE = PRTL_RUN_ONCE;
pub type PINIT_ONCE_FN = ::std::option::Option<
    unsafe extern "C" fn(InitOnce: PINIT_ONCE, Parameter: PVOID, Context: *mut PVOID) -> WINBOOL,
>;
pub type CONDITION_VARIABLE = RTL_CONDITION_VARIABLE;
pub type PCONDITION_VARIABLE = *mut RTL_CONDITION_VARIABLE;
extern "C" {
    pub fn EnterCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
}
extern "C" {
    pub fn LeaveCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
}
extern "C" {
    pub fn TryEnterCriticalSection(lpCriticalSection: LPCRITICAL_SECTION) -> WINBOOL;
}
extern "C" {
    pub fn DeleteCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
}
extern "C" {
    pub fn SetEvent(hEvent: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn ResetEvent(hEvent: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn ReleaseSemaphore(
        hSemaphore: HANDLE,
        lReleaseCount: LONG,
        lpPreviousCount: LPLONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReleaseMutex(hMutex: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn WaitForSingleObjectEx(
        hHandle: HANDLE,
        dwMilliseconds: DWORD,
        bAlertable: WINBOOL,
    ) -> DWORD;
}
extern "C" {
    pub fn WaitForMultipleObjectsEx(
        nCount: DWORD,
        lpHandles: *const HANDLE,
        bWaitAll: WINBOOL,
        dwMilliseconds: DWORD,
        bAlertable: WINBOOL,
    ) -> DWORD;
}
extern "C" {
    pub fn OpenMutexW(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenEventA(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenEventW(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenSemaphoreW(
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn WaitOnAddress(
        Address: *mut ::std::os::raw::c_void,
        CompareAddress: PVOID,
        AddressSize: SIZE_T,
        dwMilliseconds: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WakeByAddressSingle(Address: PVOID);
}
extern "C" {
    pub fn WakeByAddressAll(Address: PVOID);
}
pub type PTIMERAPCROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        lpArgToCompletionRoutine: LPVOID,
        dwTimerLowValue: DWORD,
        dwTimerHighValue: DWORD,
    ),
>;
pub type SYNCHRONIZATION_BARRIER = RTL_BARRIER;
pub type PSYNCHRONIZATION_BARRIER = PRTL_BARRIER;
pub type LPSYNCHRONIZATION_BARRIER = PRTL_BARRIER;
extern "C" {
    pub fn InitializeCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
}
extern "C" {
    pub fn InitializeCriticalSectionAndSpinCount(
        lpCriticalSection: LPCRITICAL_SECTION,
        dwSpinCount: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetCriticalSectionSpinCount(
        lpCriticalSection: LPCRITICAL_SECTION,
        dwSpinCount: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: DWORD) -> DWORD;
}
extern "C" {
    pub fn SleepEx(dwMilliseconds: DWORD, bAlertable: WINBOOL) -> DWORD;
}
extern "C" {
    pub fn CreateMutexA(
        lpMutexAttributes: LPSECURITY_ATTRIBUTES,
        bInitialOwner: WINBOOL,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateMutexW(
        lpMutexAttributes: LPSECURITY_ATTRIBUTES,
        bInitialOwner: WINBOOL,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateEventA(
        lpEventAttributes: LPSECURITY_ATTRIBUTES,
        bManualReset: WINBOOL,
        bInitialState: WINBOOL,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateEventW(
        lpEventAttributes: LPSECURITY_ATTRIBUTES,
        bManualReset: WINBOOL,
        bInitialState: WINBOOL,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn SetWaitableTimer(
        hTimer: HANDLE,
        lpDueTime: *const LARGE_INTEGER,
        lPeriod: LONG,
        pfnCompletionRoutine: PTIMERAPCROUTINE,
        lpArgToCompletionRoutine: LPVOID,
        fResume: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CancelWaitableTimer(hTimer: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn OpenWaitableTimerW(
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        lpTimerName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn EnterSynchronizationBarrier(
        lpBarrier: LPSYNCHRONIZATION_BARRIER,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn InitializeSynchronizationBarrier(
        lpBarrier: LPSYNCHRONIZATION_BARRIER,
        lTotalThreads: LONG,
        lSpinCount: LONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DeleteSynchronizationBarrier(lpBarrier: LPSYNCHRONIZATION_BARRIER) -> WINBOOL;
}
extern "C" {
    pub fn Sleep(dwMilliseconds: DWORD);
}
extern "C" {
    pub fn SignalObjectAndWait(
        hObjectToSignal: HANDLE,
        hObjectToWaitOn: HANDLE,
        dwMilliseconds: DWORD,
        bAlertable: WINBOOL,
    ) -> DWORD;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SYSTEM_INFO {
    pub __bindgen_anon_1: _SYSTEM_INFO__bindgen_ty_1,
    pub dwPageSize: DWORD,
    pub lpMinimumApplicationAddress: LPVOID,
    pub lpMaximumApplicationAddress: LPVOID,
    pub dwActiveProcessorMask: DWORD_PTR,
    pub dwNumberOfProcessors: DWORD,
    pub dwProcessorType: DWORD,
    pub dwAllocationGranularity: DWORD,
    pub wProcessorLevel: WORD,
    pub wProcessorRevision: WORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SYSTEM_INFO__bindgen_ty_1 {
    pub dwOemId: DWORD,
    pub __bindgen_anon_1: _SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1 {
    pub wProcessorArchitecture: WORD,
    pub wReserved: WORD,
}
pub type SYSTEM_INFO = _SYSTEM_INFO;
pub type LPSYSTEM_INFO = *mut _SYSTEM_INFO;
extern "C" {
    pub fn GetSystemTime(lpSystemTime: LPSYSTEMTIME);
}
extern "C" {
    pub fn GetSystemTimeAsFileTime(lpSystemTimeAsFileTime: LPFILETIME);
}
extern "C" {
    pub fn GetLocalTime(lpSystemTime: LPSYSTEMTIME);
}
extern "C" {
    pub fn GetNativeSystemInfo(lpSystemInfo: LPSYSTEM_INFO);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MEMORYSTATUSEX {
    pub dwLength: DWORD,
    pub dwMemoryLoad: DWORD,
    pub ullTotalPhys: DWORDLONG,
    pub ullAvailPhys: DWORDLONG,
    pub ullTotalPageFile: DWORDLONG,
    pub ullAvailPageFile: DWORDLONG,
    pub ullTotalVirtual: DWORDLONG,
    pub ullAvailVirtual: DWORDLONG,
    pub ullAvailExtendedVirtual: DWORDLONG,
}
pub type MEMORYSTATUSEX = _MEMORYSTATUSEX;
pub type LPMEMORYSTATUSEX = *mut _MEMORYSTATUSEX;
extern "C" {
    pub fn GetSystemInfo(lpSystemInfo: LPSYSTEM_INFO);
}
extern "C" {
    pub fn GlobalMemoryStatusEx(lpBuffer: LPMEMORYSTATUSEX) -> WINBOOL;
}
extern "C" {
    pub fn GetTickCount() -> DWORD;
}
extern "C" {
    pub fn GetSystemTimePreciseAsFileTime(lpSystemTimeAsFileTime: LPFILETIME);
}
extern "C" {
    pub fn GetVersionExA(lpVersionInformation: LPOSVERSIONINFOA) -> WINBOOL;
}
extern "C" {
    pub fn GetVersionExW(lpVersionInformation: LPOSVERSIONINFOW) -> WINBOOL;
}
pub const _COMPUTER_NAME_FORMAT_ComputerNameNetBIOS: _COMPUTER_NAME_FORMAT = 0;
pub const _COMPUTER_NAME_FORMAT_ComputerNameDnsHostname: _COMPUTER_NAME_FORMAT = 1;
pub const _COMPUTER_NAME_FORMAT_ComputerNameDnsDomain: _COMPUTER_NAME_FORMAT = 2;
pub const _COMPUTER_NAME_FORMAT_ComputerNameDnsFullyQualified: _COMPUTER_NAME_FORMAT = 3;
pub const _COMPUTER_NAME_FORMAT_ComputerNamePhysicalNetBIOS: _COMPUTER_NAME_FORMAT = 4;
pub const _COMPUTER_NAME_FORMAT_ComputerNamePhysicalDnsHostname: _COMPUTER_NAME_FORMAT = 5;
pub const _COMPUTER_NAME_FORMAT_ComputerNamePhysicalDnsDomain: _COMPUTER_NAME_FORMAT = 6;
pub const _COMPUTER_NAME_FORMAT_ComputerNamePhysicalDnsFullyQualified: _COMPUTER_NAME_FORMAT = 7;
pub const _COMPUTER_NAME_FORMAT_ComputerNameMax: _COMPUTER_NAME_FORMAT = 8;
pub type _COMPUTER_NAME_FORMAT = u32;
pub use self::_COMPUTER_NAME_FORMAT as COMPUTER_NAME_FORMAT;
extern "C" {
    pub fn GetVersion() -> DWORD;
}
extern "C" {
    pub fn SetLocalTime(lpSystemTime: *const SYSTEMTIME) -> WINBOOL;
}
extern "C" {
    pub fn GetSystemTimeAdjustment(
        lpTimeAdjustment: PDWORD,
        lpTimeIncrement: PDWORD,
        lpTimeAdjustmentDisabled: PBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetSystemDirectoryA(lpBuffer: LPSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn GetSystemDirectoryW(lpBuffer: LPWSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn GetWindowsDirectoryA(lpBuffer: LPSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn GetWindowsDirectoryW(lpBuffer: LPWSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn GetSystemWindowsDirectoryA(lpBuffer: LPSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn GetSystemWindowsDirectoryW(lpBuffer: LPWSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn GetComputerNameExA(
        NameType: COMPUTER_NAME_FORMAT,
        lpBuffer: LPSTR,
        nSize: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetComputerNameExW(
        NameType: COMPUTER_NAME_FORMAT,
        lpBuffer: LPWSTR,
        nSize: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetComputerNameExW(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetSystemTime(lpSystemTime: *const SYSTEMTIME) -> WINBOOL;
}
extern "C" {
    pub fn GetLogicalProcessorInformation(
        Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION,
        ReturnedLength: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumSystemFirmwareTables(
        FirmwareTableProviderSignature: DWORD,
        pFirmwareTableEnumBuffer: PVOID,
        BufferSize: DWORD,
    ) -> UINT;
}
extern "C" {
    pub fn GetSystemFirmwareTable(
        FirmwareTableProviderSignature: DWORD,
        FirmwareTableID: DWORD,
        pFirmwareTableBuffer: PVOID,
        BufferSize: DWORD,
    ) -> UINT;
}
extern "C" {
    pub fn GetNumaHighestNodeNumber(HighestNodeNumber: PULONG) -> WINBOOL;
}
pub type PTP_WIN32_IO_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        Instance: PTP_CALLBACK_INSTANCE,
        Context: PVOID,
        Overlapped: PVOID,
        IoResult: ULONG,
        NumberOfBytesTransferred: ULONG_PTR,
        Io: PTP_IO,
    ),
>;
extern "C" {
    pub fn CreateTimerQueueTimer(
        phNewTimer: PHANDLE,
        TimerQueue: HANDLE,
        Callback: WAITORTIMERCALLBACK,
        Parameter: PVOID,
        DueTime: DWORD,
        Period: DWORD,
        Flags: ULONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DeleteTimerQueueTimer(
        TimerQueue: HANDLE,
        Timer: HANDLE,
        CompletionEvent: HANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn QueueUserWorkItem(
        Function: LPTHREAD_START_ROUTINE,
        Context: PVOID,
        Flags: ULONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn UnregisterWaitEx(WaitHandle: HANDLE, CompletionEvent: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn CreateTimerQueue() -> HANDLE;
}
extern "C" {
    pub fn ChangeTimerQueueTimer(
        TimerQueue: HANDLE,
        Timer: HANDLE,
        DueTime: ULONG,
        Period: ULONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DeleteTimerQueueEx(TimerQueue: HANDLE, CompletionEvent: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn EncodePointer(Ptr: PVOID) -> PVOID;
}
extern "C" {
    pub fn DecodePointer(Ptr: PVOID) -> PVOID;
}
extern "C" {
    pub fn EncodeSystemPointer(Ptr: PVOID) -> PVOID;
}
extern "C" {
    pub fn DecodeSystemPointer(Ptr: PVOID) -> PVOID;
}
extern "C" {
    pub fn Beep(dwFreq: DWORD, dwDuration: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn Wow64DisableWow64FsRedirection(OldValue: *mut PVOID) -> WINBOOL;
}
extern "C" {
    pub fn Wow64RevertWow64FsRedirection(OlValue: PVOID) -> WINBOOL;
}
extern "C" {
    pub fn IsWow64Process(hProcess: HANDLE, Wow64Process: PBOOL) -> WINBOOL;
}
pub type PFIBER_START_ROUTINE =
    ::std::option::Option<unsafe extern "C" fn(lpFiberParameter: LPVOID)>;
pub type LPFIBER_START_ROUTINE = PFIBER_START_ROUTINE;
pub type LPLDT_ENTRY = LPVOID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COMMPROP {
    pub wPacketLength: WORD,
    pub wPacketVersion: WORD,
    pub dwServiceMask: DWORD,
    pub dwReserved1: DWORD,
    pub dwMaxTxQueue: DWORD,
    pub dwMaxRxQueue: DWORD,
    pub dwMaxBaud: DWORD,
    pub dwProvSubType: DWORD,
    pub dwProvCapabilities: DWORD,
    pub dwSettableParams: DWORD,
    pub dwSettableBaud: DWORD,
    pub wSettableData: WORD,
    pub wSettableStopParity: WORD,
    pub dwCurrentTxQueue: DWORD,
    pub dwCurrentRxQueue: DWORD,
    pub dwProvSpec1: DWORD,
    pub dwProvSpec2: DWORD,
    pub wcProvChar: [WCHAR; 1usize],
}
pub type COMMPROP = _COMMPROP;
pub type LPCOMMPROP = *mut _COMMPROP;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COMSTAT {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
    pub cbInQue: DWORD,
    pub cbOutQue: DWORD,
}
impl _COMSTAT {
    #[inline]
    pub fn fCtsHold(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fCtsHold(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fDsrHold(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fDsrHold(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fRlsdHold(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fRlsdHold(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fXoffHold(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fXoffHold(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fXoffSent(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fXoffSent(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fEof(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fEof(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fTxim(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fTxim(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(6usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fReserved(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 25u8) as u32) }
    }
    #[inline]
    pub fn set_fReserved(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(7usize, 25u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        fCtsHold: DWORD,
        fDsrHold: DWORD,
        fRlsdHold: DWORD,
        fXoffHold: DWORD,
        fXoffSent: DWORD,
        fEof: DWORD,
        fTxim: DWORD,
        fReserved: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let fCtsHold: u32 = unsafe { ::std::mem::transmute(fCtsHold) };
            fCtsHold as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let fDsrHold: u32 = unsafe { ::std::mem::transmute(fDsrHold) };
            fDsrHold as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let fRlsdHold: u32 = unsafe { ::std::mem::transmute(fRlsdHold) };
            fRlsdHold as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let fXoffHold: u32 = unsafe { ::std::mem::transmute(fXoffHold) };
            fXoffHold as u64
        });
        __bindgen_bitfield_unit.set(4usize, 1u8, {
            let fXoffSent: u32 = unsafe { ::std::mem::transmute(fXoffSent) };
            fXoffSent as u64
        });
        __bindgen_bitfield_unit.set(5usize, 1u8, {
            let fEof: u32 = unsafe { ::std::mem::transmute(fEof) };
            fEof as u64
        });
        __bindgen_bitfield_unit.set(6usize, 1u8, {
            let fTxim: u32 = unsafe { ::std::mem::transmute(fTxim) };
            fTxim as u64
        });
        __bindgen_bitfield_unit.set(7usize, 25u8, {
            let fReserved: u32 = unsafe { ::std::mem::transmute(fReserved) };
            fReserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type COMSTAT = _COMSTAT;
pub type LPCOMSTAT = *mut _COMSTAT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DCB {
    pub DCBlength: DWORD,
    pub BaudRate: DWORD,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
    pub wReserved: WORD,
    pub XonLim: WORD,
    pub XoffLim: WORD,
    pub ByteSize: BYTE,
    pub Parity: BYTE,
    pub StopBits: BYTE,
    pub XonChar: ::std::os::raw::c_char,
    pub XoffChar: ::std::os::raw::c_char,
    pub ErrorChar: ::std::os::raw::c_char,
    pub EofChar: ::std::os::raw::c_char,
    pub EvtChar: ::std::os::raw::c_char,
    pub wReserved1: WORD,
}
impl _DCB {
    #[inline]
    pub fn fBinary(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fBinary(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fParity(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fParity(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fOutxCtsFlow(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fOutxCtsFlow(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fOutxDsrFlow(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fOutxDsrFlow(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fDtrControl(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_fDtrControl(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn fDsrSensitivity(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fDsrSensitivity(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(6usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fTXContinueOnXoff(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fTXContinueOnXoff(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(7usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fOutX(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fOutX(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fInX(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fInX(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(9usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fErrorChar(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fErrorChar(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(10usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fNull(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fNull(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(11usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fRtsControl(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_fRtsControl(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn fAbortOnError(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fAbortOnError(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fDummy2(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 17u8) as u32) }
    }
    #[inline]
    pub fn set_fDummy2(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 17u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        fBinary: DWORD,
        fParity: DWORD,
        fOutxCtsFlow: DWORD,
        fOutxDsrFlow: DWORD,
        fDtrControl: DWORD,
        fDsrSensitivity: DWORD,
        fTXContinueOnXoff: DWORD,
        fOutX: DWORD,
        fInX: DWORD,
        fErrorChar: DWORD,
        fNull: DWORD,
        fRtsControl: DWORD,
        fAbortOnError: DWORD,
        fDummy2: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let fBinary: u32 = unsafe { ::std::mem::transmute(fBinary) };
            fBinary as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let fParity: u32 = unsafe { ::std::mem::transmute(fParity) };
            fParity as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let fOutxCtsFlow: u32 = unsafe { ::std::mem::transmute(fOutxCtsFlow) };
            fOutxCtsFlow as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let fOutxDsrFlow: u32 = unsafe { ::std::mem::transmute(fOutxDsrFlow) };
            fOutxDsrFlow as u64
        });
        __bindgen_bitfield_unit.set(4usize, 2u8, {
            let fDtrControl: u32 = unsafe { ::std::mem::transmute(fDtrControl) };
            fDtrControl as u64
        });
        __bindgen_bitfield_unit.set(6usize, 1u8, {
            let fDsrSensitivity: u32 = unsafe { ::std::mem::transmute(fDsrSensitivity) };
            fDsrSensitivity as u64
        });
        __bindgen_bitfield_unit.set(7usize, 1u8, {
            let fTXContinueOnXoff: u32 = unsafe { ::std::mem::transmute(fTXContinueOnXoff) };
            fTXContinueOnXoff as u64
        });
        __bindgen_bitfield_unit.set(8usize, 1u8, {
            let fOutX: u32 = unsafe { ::std::mem::transmute(fOutX) };
            fOutX as u64
        });
        __bindgen_bitfield_unit.set(9usize, 1u8, {
            let fInX: u32 = unsafe { ::std::mem::transmute(fInX) };
            fInX as u64
        });
        __bindgen_bitfield_unit.set(10usize, 1u8, {
            let fErrorChar: u32 = unsafe { ::std::mem::transmute(fErrorChar) };
            fErrorChar as u64
        });
        __bindgen_bitfield_unit.set(11usize, 1u8, {
            let fNull: u32 = unsafe { ::std::mem::transmute(fNull) };
            fNull as u64
        });
        __bindgen_bitfield_unit.set(12usize, 2u8, {
            let fRtsControl: u32 = unsafe { ::std::mem::transmute(fRtsControl) };
            fRtsControl as u64
        });
        __bindgen_bitfield_unit.set(14usize, 1u8, {
            let fAbortOnError: u32 = unsafe { ::std::mem::transmute(fAbortOnError) };
            fAbortOnError as u64
        });
        __bindgen_bitfield_unit.set(15usize, 17u8, {
            let fDummy2: u32 = unsafe { ::std::mem::transmute(fDummy2) };
            fDummy2 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type DCB = _DCB;
pub type LPDCB = *mut _DCB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COMMTIMEOUTS {
    pub ReadIntervalTimeout: DWORD,
    pub ReadTotalTimeoutMultiplier: DWORD,
    pub ReadTotalTimeoutConstant: DWORD,
    pub WriteTotalTimeoutMultiplier: DWORD,
    pub WriteTotalTimeoutConstant: DWORD,
}
pub type COMMTIMEOUTS = _COMMTIMEOUTS;
pub type LPCOMMTIMEOUTS = *mut _COMMTIMEOUTS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COMMCONFIG {
    pub dwSize: DWORD,
    pub wVersion: WORD,
    pub wReserved: WORD,
    pub dcb: DCB,
    pub dwProviderSubType: DWORD,
    pub dwProviderOffset: DWORD,
    pub dwProviderSize: DWORD,
    pub wcProviderData: [WCHAR; 1usize],
}
pub type COMMCONFIG = _COMMCONFIG;
pub type LPCOMMCONFIG = *mut _COMMCONFIG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MEMORYSTATUS {
    pub dwLength: DWORD,
    pub dwMemoryLoad: DWORD,
    pub dwTotalPhys: SIZE_T,
    pub dwAvailPhys: SIZE_T,
    pub dwTotalPageFile: SIZE_T,
    pub dwAvailPageFile: SIZE_T,
    pub dwTotalVirtual: SIZE_T,
    pub dwAvailVirtual: SIZE_T,
}
pub type MEMORYSTATUS = _MEMORYSTATUS;
pub type LPMEMORYSTATUS = *mut _MEMORYSTATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JIT_DEBUG_INFO {
    pub dwSize: DWORD,
    pub dwProcessorArchitecture: DWORD,
    pub dwThreadID: DWORD,
    pub dwReserved0: DWORD,
    pub lpExceptionAddress: ULONG64,
    pub lpExceptionRecord: ULONG64,
    pub lpContextRecord: ULONG64,
}
pub type JIT_DEBUG_INFO = _JIT_DEBUG_INFO;
pub type LPJIT_DEBUG_INFO = *mut _JIT_DEBUG_INFO;
pub type JIT_DEBUG_INFO32 = JIT_DEBUG_INFO;
pub type LPJIT_DEBUG_INFO32 = *mut JIT_DEBUG_INFO;
pub type JIT_DEBUG_INFO64 = JIT_DEBUG_INFO;
pub type LPJIT_DEBUG_INFO64 = *mut JIT_DEBUG_INFO;
pub type LPEXCEPTION_RECORD = PEXCEPTION_RECORD;
pub type LPEXCEPTION_POINTERS = PEXCEPTION_POINTERS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _OFSTRUCT {
    pub cBytes: BYTE,
    pub fFixedDisk: BYTE,
    pub nErrCode: WORD,
    pub Reserved1: WORD,
    pub Reserved2: WORD,
    pub szPathName: [CHAR; 128usize],
}
pub type OFSTRUCT = _OFSTRUCT;
pub type LPOFSTRUCT = *mut _OFSTRUCT;
pub type POFSTRUCT = *mut _OFSTRUCT;
extern "C" {
    pub fn _InterlockedAnd8(
        Destination: *mut ::std::os::raw::c_char,
        Value: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn _InterlockedOr8(
        Destination: *mut ::std::os::raw::c_char,
        Value: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn _InterlockedXor8(
        Destination: *mut ::std::os::raw::c_char,
        Value: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn _InterlockedAnd16(Destination: *mut SHORT, Value: SHORT) -> SHORT;
}
extern "C" {
    pub fn _InterlockedOr16(Destination: *mut SHORT, Value: SHORT) -> SHORT;
}
extern "C" {
    pub fn _InterlockedXor16(Destination: *mut SHORT, Value: SHORT) -> SHORT;
}
extern "C" {
    pub fn LocalAlloc(uFlags: UINT, uBytes: SIZE_T) -> HLOCAL;
}
extern "C" {
    pub fn LocalFree(hMem: HLOCAL) -> HLOCAL;
}
extern "C" {
    pub fn WinMain(
        hInstance: HINSTANCE,
        hPrevInstance: HINSTANCE,
        lpCmdLine: LPSTR,
        nShowCmd: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wWinMain(
        hInstance: HINSTANCE,
        hPrevInstance: HINSTANCE,
        lpCmdLine: LPWSTR,
        nShowCmd: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GlobalAlloc(uFlags: UINT, dwBytes: SIZE_T) -> HGLOBAL;
}
extern "C" {
    pub fn GlobalReAlloc(hMem: HGLOBAL, dwBytes: SIZE_T, uFlags: UINT) -> HGLOBAL;
}
extern "C" {
    pub fn GlobalSize(hMem: HGLOBAL) -> SIZE_T;
}
extern "C" {
    pub fn GlobalFlags(hMem: HGLOBAL) -> UINT;
}
extern "C" {
    pub fn GlobalLock(hMem: HGLOBAL) -> LPVOID;
}
extern "C" {
    pub fn GlobalHandle(pMem: LPCVOID) -> HGLOBAL;
}
extern "C" {
    pub fn GlobalUnlock(hMem: HGLOBAL) -> WINBOOL;
}
extern "C" {
    pub fn GlobalFree(hMem: HGLOBAL) -> HGLOBAL;
}
extern "C" {
    pub fn GlobalCompact(dwMinFree: DWORD) -> SIZE_T;
}
extern "C" {
    pub fn GlobalFix(hMem: HGLOBAL);
}
extern "C" {
    pub fn GlobalUnfix(hMem: HGLOBAL);
}
extern "C" {
    pub fn GlobalWire(hMem: HGLOBAL) -> LPVOID;
}
extern "C" {
    pub fn GlobalUnWire(hMem: HGLOBAL) -> WINBOOL;
}
extern "C" {
    pub fn GlobalMemoryStatus(lpBuffer: LPMEMORYSTATUS);
}
extern "C" {
    pub fn LocalReAlloc(hMem: HLOCAL, uBytes: SIZE_T, uFlags: UINT) -> HLOCAL;
}
extern "C" {
    pub fn LocalLock(hMem: HLOCAL) -> LPVOID;
}
extern "C" {
    pub fn LocalHandle(pMem: LPCVOID) -> HLOCAL;
}
extern "C" {
    pub fn LocalUnlock(hMem: HLOCAL) -> WINBOOL;
}
extern "C" {
    pub fn LocalSize(hMem: HLOCAL) -> SIZE_T;
}
extern "C" {
    pub fn LocalFlags(hMem: HLOCAL) -> UINT;
}
extern "C" {
    pub fn LocalShrink(hMem: HLOCAL, cbNewSize: UINT) -> SIZE_T;
}
extern "C" {
    pub fn LocalCompact(uMinFree: UINT) -> SIZE_T;
}
extern "C" {
    pub fn GetBinaryTypeA(lpApplicationName: LPCSTR, lpBinaryType: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetBinaryTypeW(lpApplicationName: LPCWSTR, lpBinaryType: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetShortPathNameA(lpszLongPath: LPCSTR, lpszShortPath: LPSTR, cchBuffer: DWORD)
        -> DWORD;
}
extern "C" {
    pub fn GetProcessAffinityMask(
        hProcess: HANDLE,
        lpProcessAffinityMask: PDWORD_PTR,
        lpSystemAffinityMask: PDWORD_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetProcessAffinityMask(hProcess: HANDLE, dwProcessAffinityMask: DWORD_PTR) -> WINBOOL;
}
extern "C" {
    pub fn GetProcessIoCounters(hProcess: HANDLE, lpIoCounters: PIO_COUNTERS) -> WINBOOL;
}
extern "C" {
    pub fn GetProcessWorkingSetSize(
        hProcess: HANDLE,
        lpMinimumWorkingSetSize: PSIZE_T,
        lpMaximumWorkingSetSize: PSIZE_T,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetProcessWorkingSetSize(
        hProcess: HANDLE,
        dwMinimumWorkingSetSize: SIZE_T,
        dwMaximumWorkingSetSize: SIZE_T,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FatalExit(ExitCode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetEnvironmentStringsA(NewEnvironment: LPCH) -> WINBOOL;
}
extern "C" {
    pub fn RaiseFailFastException(
        pExceptionRecord: PEXCEPTION_RECORD,
        pContextRecord: PCONTEXT,
        dwFlags: DWORD,
    );
}
extern "C" {
    pub fn SetThreadIdealProcessor(hThread: HANDLE, dwIdealProcessor: DWORD) -> DWORD;
}
extern "C" {
    pub fn CreateFiber(
        dwStackSize: SIZE_T,
        lpStartAddress: LPFIBER_START_ROUTINE,
        lpParameter: LPVOID,
    ) -> LPVOID;
}
extern "C" {
    pub fn CreateFiberEx(
        dwStackCommitSize: SIZE_T,
        dwStackReserveSize: SIZE_T,
        dwFlags: DWORD,
        lpStartAddress: LPFIBER_START_ROUTINE,
        lpParameter: LPVOID,
    ) -> LPVOID;
}
extern "C" {
    pub fn DeleteFiber(lpFiber: LPVOID);
}
extern "C" {
    pub fn ConvertThreadToFiber(lpParameter: LPVOID) -> LPVOID;
}
extern "C" {
    pub fn ConvertThreadToFiberEx(lpParameter: LPVOID, dwFlags: DWORD) -> LPVOID;
}
extern "C" {
    pub fn ConvertFiberToThread() -> WINBOOL;
}
extern "C" {
    pub fn SwitchToFiber(lpFiber: LPVOID);
}
extern "C" {
    pub fn SetThreadAffinityMask(hThread: HANDLE, dwThreadAffinityMask: DWORD_PTR) -> DWORD_PTR;
}
pub const _THREAD_INFORMATION_CLASS_ThreadMemoryPriority: _THREAD_INFORMATION_CLASS = 0;
pub const _THREAD_INFORMATION_CLASS_ThreadAbsoluteCpuPriority: _THREAD_INFORMATION_CLASS = 1;
pub const _THREAD_INFORMATION_CLASS_ThreadInformationClassMax: _THREAD_INFORMATION_CLASS = 2;
pub type _THREAD_INFORMATION_CLASS = u32;
pub use self::_THREAD_INFORMATION_CLASS as THREAD_INFORMATION_CLASS;
pub const _PROCESS_INFORMATION_CLASS_ProcessMemoryPriority: _PROCESS_INFORMATION_CLASS = 0;
pub const _PROCESS_INFORMATION_CLASS_ProcessInformationClassMax: _PROCESS_INFORMATION_CLASS = 1;
pub type _PROCESS_INFORMATION_CLASS = u32;
pub use self::_PROCESS_INFORMATION_CLASS as PROCESS_INFORMATION_CLASS;
extern "C" {
    pub fn SetProcessPriorityBoost(hProcess: HANDLE, bDisablePriorityBoost: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GetProcessPriorityBoost(hProcess: HANDLE, pDisablePriorityBoost: PBOOL) -> WINBOOL;
}
extern "C" {
    pub fn RequestWakeupLatency(latency: LATENCY_TIME) -> WINBOOL;
}
extern "C" {
    pub fn IsSystemResumeAutomatic() -> WINBOOL;
}
extern "C" {
    pub fn GetThreadIOPendingFlag(hThread: HANDLE, lpIOIsPending: PBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GetThreadSelectorEntry(
        hThread: HANDLE,
        dwSelector: DWORD,
        lpSelectorEntry: LPLDT_ENTRY,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetThreadExecutionState(esFlags: EXECUTION_STATE) -> EXECUTION_STATE;
}
extern "C" {
    pub fn GetThreadErrorMode() -> DWORD;
}
extern "C" {
    pub fn SetThreadErrorMode(dwNewMode: DWORD, lpOldMode: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn DebugSetProcessKillOnExit(KillOnExit: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn DebugBreakProcess(Process: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn WaitForMultipleObjects(
        nCount: DWORD,
        lpHandles: *const HANDLE,
        bWaitAll: WINBOOL,
        dwMilliseconds: DWORD,
    ) -> DWORD;
}
pub const _DEP_SYSTEM_POLICY_TYPE_DEPPolicyAlwaysOff: _DEP_SYSTEM_POLICY_TYPE = 0;
pub const _DEP_SYSTEM_POLICY_TYPE_DEPPolicyAlwaysOn: _DEP_SYSTEM_POLICY_TYPE = 1;
pub const _DEP_SYSTEM_POLICY_TYPE_DEPPolicyOptIn: _DEP_SYSTEM_POLICY_TYPE = 2;
pub const _DEP_SYSTEM_POLICY_TYPE_DEPPolicyOptOut: _DEP_SYSTEM_POLICY_TYPE = 3;
pub const _DEP_SYSTEM_POLICY_TYPE_DEPTotalPolicyCount: _DEP_SYSTEM_POLICY_TYPE = 4;
pub type _DEP_SYSTEM_POLICY_TYPE = u32;
pub use self::_DEP_SYSTEM_POLICY_TYPE as DEP_SYSTEM_POLICY_TYPE;
extern "C" {
    pub fn PulseEvent(hEvent: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn GlobalDeleteAtom(nAtom: ATOM) -> ATOM;
}
extern "C" {
    pub fn InitAtomTable(nSize: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn DeleteAtom(nAtom: ATOM) -> ATOM;
}
extern "C" {
    pub fn SetHandleCount(uNumber: UINT) -> UINT;
}
extern "C" {
    pub fn RequestDeviceWakeup(hDevice: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn CancelDeviceWakeupRequest(hDevice: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn GetDevicePowerState(hDevice: HANDLE, pfOn: *mut WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn SetMessageWaitingIndicator(hMsgIndicator: HANDLE, ulMsgCount: ULONG) -> WINBOOL;
}
extern "C" {
    pub fn SetFileShortNameA(hFile: HANDLE, lpShortName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetFileShortNameW(hFile: HANDLE, lpShortName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn LoadModule(lpModuleName: LPCSTR, lpParameterBlock: LPVOID) -> DWORD;
}
extern "C" {
    pub fn WinExec(lpCmdLine: LPCSTR, uCmdShow: UINT) -> UINT;
}
extern "C" {
    pub fn ClearCommBreak(hFile: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn ClearCommError(hFile: HANDLE, lpErrors: LPDWORD, lpStat: LPCOMSTAT) -> WINBOOL;
}
extern "C" {
    pub fn SetupComm(hFile: HANDLE, dwInQueue: DWORD, dwOutQueue: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn EscapeCommFunction(hFile: HANDLE, dwFunc: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetCommConfig(hCommDev: HANDLE, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetCommMask(hFile: HANDLE, lpEvtMask: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetCommProperties(hFile: HANDLE, lpCommProp: LPCOMMPROP) -> WINBOOL;
}
extern "C" {
    pub fn GetCommModemStatus(hFile: HANDLE, lpModemStat: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetCommState(hFile: HANDLE, lpDCB: LPDCB) -> WINBOOL;
}
extern "C" {
    pub fn GetCommTimeouts(hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS) -> WINBOOL;
}
extern "C" {
    pub fn PurgeComm(hFile: HANDLE, dwFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetCommBreak(hFile: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn SetCommConfig(hCommDev: HANDLE, lpCC: LPCOMMCONFIG, dwSize: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetCommMask(hFile: HANDLE, dwEvtMask: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetCommState(hFile: HANDLE, lpDCB: LPDCB) -> WINBOOL;
}
extern "C" {
    pub fn SetCommTimeouts(hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS) -> WINBOOL;
}
extern "C" {
    pub fn TransmitCommChar(hFile: HANDLE, cChar: ::std::os::raw::c_char) -> WINBOOL;
}
extern "C" {
    pub fn WaitCommEvent(hFile: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED) -> WINBOOL;
}
extern "C" {
    pub fn SetTapePosition(
        hDevice: HANDLE,
        dwPositionMethod: DWORD,
        dwPartition: DWORD,
        dwOffsetLow: DWORD,
        dwOffsetHigh: DWORD,
        bImmediate: WINBOOL,
    ) -> DWORD;
}
extern "C" {
    pub fn GetTapePosition(
        hDevice: HANDLE,
        dwPositionType: DWORD,
        lpdwPartition: LPDWORD,
        lpdwOffsetLow: LPDWORD,
        lpdwOffsetHigh: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn PrepareTape(hDevice: HANDLE, dwOperation: DWORD, bImmediate: WINBOOL) -> DWORD;
}
extern "C" {
    pub fn EraseTape(hDevice: HANDLE, dwEraseType: DWORD, bImmediate: WINBOOL) -> DWORD;
}
extern "C" {
    pub fn CreateTapePartition(
        hDevice: HANDLE,
        dwPartitionMethod: DWORD,
        dwCount: DWORD,
        dwSize: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WriteTapemark(
        hDevice: HANDLE,
        dwTapemarkType: DWORD,
        dwTapemarkCount: DWORD,
        bImmediate: WINBOOL,
    ) -> DWORD;
}
extern "C" {
    pub fn GetTapeStatus(hDevice: HANDLE) -> DWORD;
}
extern "C" {
    pub fn GetTapeParameters(
        hDevice: HANDLE,
        dwOperation: DWORD,
        lpdwSize: LPDWORD,
        lpTapeInformation: LPVOID,
    ) -> DWORD;
}
extern "C" {
    pub fn SetTapeParameters(
        hDevice: HANDLE,
        dwOperation: DWORD,
        lpTapeInformation: LPVOID,
    ) -> DWORD;
}
extern "C" {
    pub fn GetSystemDEPPolicy() -> DEP_SYSTEM_POLICY_TYPE;
}
extern "C" {
    pub fn GetSystemRegistryQuota(pdwQuotaAllowed: PDWORD, pdwQuotaUsed: PDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetSystemTimes(
        lpIdleTime: LPFILETIME,
        lpKernelTime: LPFILETIME,
        lpUserTime: LPFILETIME,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FileTimeToDosDateTime(
        lpFileTime: *const FILETIME,
        lpFatDate: LPWORD,
        lpFatTime: LPWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DosDateTimeToFileTime(wFatDate: WORD, wFatTime: WORD, lpFileTime: LPFILETIME)
        -> WINBOOL;
}
extern "C" {
    pub fn SetSystemTimeAdjustment(
        dwTimeAdjustment: DWORD,
        bTimeAdjustmentDisabled: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MulDiv(
        nNumber: ::std::os::raw::c_int,
        nNumerator: ::std::os::raw::c_int,
        nDenominator: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn FormatMessageA(
        dwFlags: DWORD,
        lpSource: LPCVOID,
        dwMessageId: DWORD,
        dwLanguageId: DWORD,
        lpBuffer: LPSTR,
        nSize: DWORD,
        Arguments: *mut va_list,
    ) -> DWORD;
}
extern "C" {
    pub fn FormatMessageW(
        dwFlags: DWORD,
        lpSource: LPCVOID,
        dwMessageId: DWORD,
        dwLanguageId: DWORD,
        lpBuffer: LPWSTR,
        nSize: DWORD,
        Arguments: *mut va_list,
    ) -> DWORD;
}
pub type PFE_EXPORT_FUNC = ::std::option::Option<
    unsafe extern "C" fn(pbData: PBYTE, pvCallbackContext: PVOID, ulLength: ULONG) -> DWORD,
>;
pub type PFE_IMPORT_FUNC = ::std::option::Option<
    unsafe extern "C" fn(pbData: PBYTE, pvCallbackContext: PVOID, ulLength: PULONG) -> DWORD,
>;
extern "C" {
    pub fn GetNamedPipeInfo(
        hNamedPipe: HANDLE,
        lpFlags: LPDWORD,
        lpOutBufferSize: LPDWORD,
        lpInBufferSize: LPDWORD,
        lpMaxInstances: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateMailslotA(
        lpName: LPCSTR,
        nMaxMessageSize: DWORD,
        lReadTimeout: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateMailslotW(
        lpName: LPCWSTR,
        nMaxMessageSize: DWORD,
        lReadTimeout: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> HANDLE;
}
extern "C" {
    pub fn GetMailslotInfo(
        hMailslot: HANDLE,
        lpMaxMessageSize: LPDWORD,
        lpNextSize: LPDWORD,
        lpMessageCount: LPDWORD,
        lpReadTimeout: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetMailslotInfo(hMailslot: HANDLE, lReadTimeout: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn EncryptFileA(lpFileName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn EncryptFileW(lpFileName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn DecryptFileA(lpFileName: LPCSTR, dwReserved: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn DecryptFileW(lpFileName: LPCWSTR, dwReserved: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn FileEncryptionStatusA(lpFileName: LPCSTR, lpStatus: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn FileEncryptionStatusW(lpFileName: LPCWSTR, lpStatus: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn OpenEncryptedFileRawA(
        lpFileName: LPCSTR,
        ulFlags: ULONG,
        pvContext: *mut PVOID,
    ) -> DWORD;
}
extern "C" {
    pub fn OpenEncryptedFileRawW(
        lpFileName: LPCWSTR,
        ulFlags: ULONG,
        pvContext: *mut PVOID,
    ) -> DWORD;
}
extern "C" {
    pub fn ReadEncryptedFileRaw(
        pfExportCallback: PFE_EXPORT_FUNC,
        pvCallbackContext: PVOID,
        pvContext: PVOID,
    ) -> DWORD;
}
extern "C" {
    pub fn WriteEncryptedFileRaw(
        pfImportCallback: PFE_IMPORT_FUNC,
        pvCallbackContext: PVOID,
        pvContext: PVOID,
    ) -> DWORD;
}
extern "C" {
    pub fn CloseEncryptedFileRaw(pvContext: PVOID);
}
extern "C" {
    pub fn lstrcmpA(lpString1: LPCSTR, lpString2: LPCSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn lstrcmpW(lpString1: LPCWSTR, lpString2: LPCWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn lstrcmpiA(lpString1: LPCSTR, lpString2: LPCSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn lstrcmpiW(lpString1: LPCWSTR, lpString2: LPCWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn lstrcpynA(
        lpString1: LPSTR,
        lpString2: LPCSTR,
        iMaxLength: ::std::os::raw::c_int,
    ) -> LPSTR;
}
extern "C" {
    pub fn lstrcpynW(
        lpString1: LPWSTR,
        lpString2: LPCWSTR,
        iMaxLength: ::std::os::raw::c_int,
    ) -> LPWSTR;
}
extern "C" {
    pub fn lstrcpyA(lpString1: LPSTR, lpString2: LPCSTR) -> LPSTR;
}
extern "C" {
    pub fn lstrcpyW(lpString1: LPWSTR, lpString2: LPCWSTR) -> LPWSTR;
}
extern "C" {
    pub fn lstrcatA(lpString1: LPSTR, lpString2: LPCSTR) -> LPSTR;
}
extern "C" {
    pub fn lstrcatW(lpString1: LPWSTR, lpString2: LPCWSTR) -> LPWSTR;
}
extern "C" {
    pub fn lstrlenA(lpString: LPCSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn lstrlenW(lpString: LPCWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn OpenFile(lpFileName: LPCSTR, lpReOpenBuff: LPOFSTRUCT, uStyle: UINT) -> HFILE;
}
extern "C" {
    pub fn _lopen(lpPathName: LPCSTR, iReadWrite: ::std::os::raw::c_int) -> HFILE;
}
extern "C" {
    pub fn _lcreat(lpPathName: LPCSTR, iAttribute: ::std::os::raw::c_int) -> HFILE;
}
extern "C" {
    pub fn _lread(hFile: HFILE, lpBuffer: LPVOID, uBytes: UINT) -> UINT;
}
extern "C" {
    pub fn _lwrite(hFile: HFILE, lpBuffer: LPCCH, uBytes: UINT) -> UINT;
}
extern "C" {
    pub fn _hread(
        hFile: HFILE,
        lpBuffer: LPVOID,
        lBytes: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _hwrite(
        hFile: HFILE,
        lpBuffer: LPCCH,
        lBytes: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _lclose(hFile: HFILE) -> HFILE;
}
extern "C" {
    pub fn _llseek(hFile: HFILE, lOffset: LONG, iOrigin: ::std::os::raw::c_int) -> LONG;
}
extern "C" {
    pub fn IsTextUnicode(
        lpv: *const ::std::os::raw::c_void,
        iSize: ::std::os::raw::c_int,
        lpiResult: LPINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn BackupRead(
        hFile: HANDLE,
        lpBuffer: LPBYTE,
        nNumberOfBytesToRead: DWORD,
        lpNumberOfBytesRead: LPDWORD,
        bAbort: WINBOOL,
        bProcessSecurity: WINBOOL,
        lpContext: *mut LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn BackupSeek(
        hFile: HANDLE,
        dwLowBytesToSeek: DWORD,
        dwHighBytesToSeek: DWORD,
        lpdwLowByteSeeked: LPDWORD,
        lpdwHighByteSeeked: LPDWORD,
        lpContext: *mut LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn BackupWrite(
        hFile: HANDLE,
        lpBuffer: LPBYTE,
        nNumberOfBytesToWrite: DWORD,
        lpNumberOfBytesWritten: LPDWORD,
        bAbort: WINBOOL,
        bProcessSecurity: WINBOOL,
        lpContext: *mut LPVOID,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WIN32_STREAM_ID {
    pub dwStreamId: DWORD,
    pub dwStreamAttributes: DWORD,
    pub Size: LARGE_INTEGER,
    pub dwStreamNameSize: DWORD,
    pub cStreamName: [WCHAR; 1usize],
}
pub type WIN32_STREAM_ID = _WIN32_STREAM_ID;
pub type LPWIN32_STREAM_ID = *mut _WIN32_STREAM_ID;
extern "C" {
    pub fn CreateSemaphoreW(
        lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES,
        lInitialCount: LONG,
        lMaximumCount: LONG,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenMutexA(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn CreateSemaphoreA(
        lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES,
        lInitialCount: LONG,
        lMaximumCount: LONG,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenSemaphoreA(
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateWaitableTimerA(
        lpTimerAttributes: LPSECURITY_ATTRIBUTES,
        bManualReset: WINBOOL,
        lpTimerName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateWaitableTimerW(
        lpTimerAttributes: LPSECURITY_ATTRIBUTES,
        bManualReset: WINBOOL,
        lpTimerName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenWaitableTimerA(
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        lpTimerName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateFileMappingA(
        hFile: HANDLE,
        lpFileMappingAttributes: LPSECURITY_ATTRIBUTES,
        flProtect: DWORD,
        dwMaximumSizeHigh: DWORD,
        dwMaximumSizeLow: DWORD,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenFileMappingA(
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn GetLogicalDriveStringsA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
}
extern "C" {
    pub fn GetProcessShutdownParameters(lpdwLevel: LPDWORD, lpdwFlags: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn FatalAppExitA(uAction: UINT, lpMessageText: LPCSTR);
}
extern "C" {
    pub fn FatalAppExitW(uAction: UINT, lpMessageText: LPCWSTR);
}
extern "C" {
    pub fn GetStartupInfoA(lpStartupInfo: LPSTARTUPINFOA);
}
extern "C" {
    pub fn GetFirmwareEnvironmentVariableA(
        lpName: LPCSTR,
        lpGuid: LPCSTR,
        pBuffer: PVOID,
        nSize: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFirmwareEnvironmentVariableW(
        lpName: LPCWSTR,
        lpGuid: LPCWSTR,
        pBuffer: PVOID,
        nSize: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn SetFirmwareEnvironmentVariableA(
        lpName: LPCSTR,
        lpGuid: LPCSTR,
        pValue: PVOID,
        nSize: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetFirmwareEnvironmentVariableW(
        lpName: LPCWSTR,
        lpGuid: LPCWSTR,
        pValue: PVOID,
        nSize: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindResourceA(hModule: HMODULE, lpName: LPCSTR, lpType: LPCSTR) -> HRSRC;
}
extern "C" {
    pub fn FindResourceExA(
        hModule: HMODULE,
        lpType: LPCSTR,
        lpName: LPCSTR,
        wLanguage: WORD,
    ) -> HRSRC;
}
extern "C" {
    pub fn EnumResourceTypesA(
        hModule: HMODULE,
        lpEnumFunc: ENUMRESTYPEPROCA,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumResourceTypesW(
        hModule: HMODULE,
        lpEnumFunc: ENUMRESTYPEPROCW,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumResourceNamesA(
        hModule: HMODULE,
        lpType: LPCSTR,
        lpEnumFunc: ENUMRESNAMEPROCA,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn BeginUpdateResourceA(pFileName: LPCSTR, bDeleteExistingResources: WINBOOL) -> HANDLE;
}
extern "C" {
    pub fn BeginUpdateResourceW(pFileName: LPCWSTR, bDeleteExistingResources: WINBOOL) -> HANDLE;
}
extern "C" {
    pub fn UpdateResourceA(
        hUpdate: HANDLE,
        lpType: LPCSTR,
        lpName: LPCSTR,
        wLanguage: WORD,
        lpData: LPVOID,
        cb: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn UpdateResourceW(
        hUpdate: HANDLE,
        lpType: LPCWSTR,
        lpName: LPCWSTR,
        wLanguage: WORD,
        lpData: LPVOID,
        cb: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EndUpdateResourceA(hUpdate: HANDLE, fDiscard: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn EndUpdateResourceW(hUpdate: HANDLE, fDiscard: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GlobalAddAtomA(lpString: LPCSTR) -> ATOM;
}
extern "C" {
    pub fn GlobalAddAtomW(lpString: LPCWSTR) -> ATOM;
}
extern "C" {
    pub fn GlobalAddAtomExA(lpString: LPCSTR, Flags: DWORD) -> ATOM;
}
extern "C" {
    pub fn GlobalAddAtomExW(lpString: LPCWSTR, Flags: DWORD) -> ATOM;
}
extern "C" {
    pub fn GlobalFindAtomA(lpString: LPCSTR) -> ATOM;
}
extern "C" {
    pub fn GlobalFindAtomW(lpString: LPCWSTR) -> ATOM;
}
extern "C" {
    pub fn GlobalGetAtomNameA(nAtom: ATOM, lpBuffer: LPSTR, nSize: ::std::os::raw::c_int) -> UINT;
}
extern "C" {
    pub fn GlobalGetAtomNameW(nAtom: ATOM, lpBuffer: LPWSTR, nSize: ::std::os::raw::c_int) -> UINT;
}
extern "C" {
    pub fn AddAtomA(lpString: LPCSTR) -> ATOM;
}
extern "C" {
    pub fn AddAtomW(lpString: LPCWSTR) -> ATOM;
}
extern "C" {
    pub fn FindAtomA(lpString: LPCSTR) -> ATOM;
}
extern "C" {
    pub fn FindAtomW(lpString: LPCWSTR) -> ATOM;
}
extern "C" {
    pub fn GetAtomNameA(nAtom: ATOM, lpBuffer: LPSTR, nSize: ::std::os::raw::c_int) -> UINT;
}
extern "C" {
    pub fn GetAtomNameW(nAtom: ATOM, lpBuffer: LPWSTR, nSize: ::std::os::raw::c_int) -> UINT;
}
extern "C" {
    pub fn GetProfileIntA(lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT) -> UINT;
}
extern "C" {
    pub fn GetProfileIntW(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT) -> UINT;
}
extern "C" {
    pub fn GetProfileStringA(
        lpAppName: LPCSTR,
        lpKeyName: LPCSTR,
        lpDefault: LPCSTR,
        lpReturnedString: LPSTR,
        nSize: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetProfileStringW(
        lpAppName: LPCWSTR,
        lpKeyName: LPCWSTR,
        lpDefault: LPCWSTR,
        lpReturnedString: LPWSTR,
        nSize: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WriteProfileStringA(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn WriteProfileStringW(
        lpAppName: LPCWSTR,
        lpKeyName: LPCWSTR,
        lpString: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetProfileSectionA(lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetProfileSectionW(lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn WriteProfileSectionA(lpAppName: LPCSTR, lpString: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn WriteProfileSectionW(lpAppName: LPCWSTR, lpString: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetPrivateProfileIntA(
        lpAppName: LPCSTR,
        lpKeyName: LPCSTR,
        nDefault: INT,
        lpFileName: LPCSTR,
    ) -> UINT;
}
extern "C" {
    pub fn GetPrivateProfileIntW(
        lpAppName: LPCWSTR,
        lpKeyName: LPCWSTR,
        nDefault: INT,
        lpFileName: LPCWSTR,
    ) -> UINT;
}
extern "C" {
    pub fn GetPrivateProfileStringA(
        lpAppName: LPCSTR,
        lpKeyName: LPCSTR,
        lpDefault: LPCSTR,
        lpReturnedString: LPSTR,
        nSize: DWORD,
        lpFileName: LPCSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetPrivateProfileStringW(
        lpAppName: LPCWSTR,
        lpKeyName: LPCWSTR,
        lpDefault: LPCWSTR,
        lpReturnedString: LPWSTR,
        nSize: DWORD,
        lpFileName: LPCWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn WritePrivateProfileStringA(
        lpAppName: LPCSTR,
        lpKeyName: LPCSTR,
        lpString: LPCSTR,
        lpFileName: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WritePrivateProfileStringW(
        lpAppName: LPCWSTR,
        lpKeyName: LPCWSTR,
        lpString: LPCWSTR,
        lpFileName: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetPrivateProfileSectionA(
        lpAppName: LPCSTR,
        lpReturnedString: LPSTR,
        nSize: DWORD,
        lpFileName: LPCSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetPrivateProfileSectionW(
        lpAppName: LPCWSTR,
        lpReturnedString: LPWSTR,
        nSize: DWORD,
        lpFileName: LPCWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn WritePrivateProfileSectionA(
        lpAppName: LPCSTR,
        lpString: LPCSTR,
        lpFileName: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WritePrivateProfileSectionW(
        lpAppName: LPCWSTR,
        lpString: LPCWSTR,
        lpFileName: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetPrivateProfileSectionNamesA(
        lpszReturnBuffer: LPSTR,
        nSize: DWORD,
        lpFileName: LPCSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetPrivateProfileSectionNamesW(
        lpszReturnBuffer: LPWSTR,
        nSize: DWORD,
        lpFileName: LPCWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetPrivateProfileStructA(
        lpszSection: LPCSTR,
        lpszKey: LPCSTR,
        lpStruct: LPVOID,
        uSizeStruct: UINT,
        szFile: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetPrivateProfileStructW(
        lpszSection: LPCWSTR,
        lpszKey: LPCWSTR,
        lpStruct: LPVOID,
        uSizeStruct: UINT,
        szFile: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WritePrivateProfileStructA(
        lpszSection: LPCSTR,
        lpszKey: LPCSTR,
        lpStruct: LPVOID,
        uSizeStruct: UINT,
        szFile: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WritePrivateProfileStructW(
        lpszSection: LPCWSTR,
        lpszKey: LPCWSTR,
        lpStruct: LPVOID,
        uSizeStruct: UINT,
        szFile: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetSystemWow64DirectoryA(lpBuffer: LPSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn GetSystemWow64DirectoryW(lpBuffer: LPWSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection: BOOLEAN) -> BOOLEAN;
}
pub type PGET_SYSTEM_WOW64_DIRECTORY_A =
    ::std::option::Option<unsafe extern "C" fn(lpBuffer: LPSTR, uSize: UINT) -> UINT>;
pub type PGET_SYSTEM_WOW64_DIRECTORY_W =
    ::std::option::Option<unsafe extern "C" fn(lpBuffer: LPWSTR, uSize: UINT) -> UINT>;
extern "C" {
    pub fn SetDllDirectoryA(lpPathName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetDllDirectoryW(lpPathName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetDllDirectoryA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
}
extern "C" {
    pub fn GetDllDirectoryW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
}
extern "C" {
    pub fn SetSearchPathMode(Flags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CreateDirectoryExA(
        lpTemplateDirectory: LPCSTR,
        lpNewDirectory: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateDirectoryExW(
        lpTemplateDirectory: LPCWSTR,
        lpNewDirectory: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DefineDosDeviceA(dwFlags: DWORD, lpDeviceName: LPCSTR, lpTargetPath: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn QueryDosDeviceA(lpDeviceName: LPCSTR, lpTargetPath: LPSTR, ucchMax: DWORD) -> DWORD;
}
extern "C" {
    pub fn ReOpenFile(
        hOriginalFile: HANDLE,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        dwFlagsAndAttributes: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn GetCompressedFileSizeA(lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn GetCompressedFileSizeW(lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD) -> DWORD;
}
pub type LPPROGRESS_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        TotalFileSize: LARGE_INTEGER,
        TotalBytesTransferred: LARGE_INTEGER,
        StreamSize: LARGE_INTEGER,
        StreamBytesTransferred: LARGE_INTEGER,
        dwStreamNumber: DWORD,
        dwCallbackReason: DWORD,
        hSourceFile: HANDLE,
        hDestinationFile: HANDLE,
        lpData: LPVOID,
    ) -> DWORD,
>;
extern "C" {
    pub fn CopyFileExA(
        lpExistingFileName: LPCSTR,
        lpNewFileName: LPCSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        pbCancel: LPBOOL,
        dwCopyFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CopyFileExW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        pbCancel: LPBOOL,
        dwCopyFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CheckNameLegalDOS8Dot3A(
        lpName: LPCSTR,
        lpOemName: LPSTR,
        OemNameSize: DWORD,
        pbNameContainsSpaces: PBOOL,
        pbNameLegal: PBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CheckNameLegalDOS8Dot3W(
        lpName: LPCWSTR,
        lpOemName: LPSTR,
        OemNameSize: DWORD,
        pbNameContainsSpaces: PBOOL,
        pbNameLegal: PBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CopyFileA(
        lpExistingFileName: LPCSTR,
        lpNewFileName: LPCSTR,
        bFailIfExists: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CopyFileW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        bFailIfExists: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn MoveFileExA(
        lpExistingFileName: LPCSTR,
        lpNewFileName: LPCSTR,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MoveFileExW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MoveFileWithProgressA(
        lpExistingFileName: LPCSTR,
        lpNewFileName: LPCSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MoveFileWithProgressW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetNamedPipeClientComputerNameA(
        Pipe: HANDLE,
        ClientComputerName: LPSTR,
        ClientComputerNameLength: ULONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetNamedPipeHandleStateA(
        hNamedPipe: HANDLE,
        lpState: LPDWORD,
        lpCurInstances: LPDWORD,
        lpMaxCollectionCount: LPDWORD,
        lpCollectDataTimeout: LPDWORD,
        lpUserName: LPSTR,
        nMaxUserNameSize: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WaitNamedPipeA(lpNamedPipeName: LPCSTR, nTimeOut: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CallNamedPipeA(
        lpNamedPipeName: LPCSTR,
        lpInBuffer: LPVOID,
        nInBufferSize: DWORD,
        lpOutBuffer: LPVOID,
        nOutBufferSize: DWORD,
        lpBytesRead: LPDWORD,
        nTimeOut: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CallNamedPipeW(
        lpNamedPipeName: LPCWSTR,
        lpInBuffer: LPVOID,
        nInBufferSize: DWORD,
        lpOutBuffer: LPVOID,
        nOutBufferSize: DWORD,
        lpBytesRead: LPDWORD,
        nTimeOut: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateNamedPipeA(
        lpName: LPCSTR,
        dwOpenMode: DWORD,
        dwPipeMode: DWORD,
        nMaxInstances: DWORD,
        nOutBufferSize: DWORD,
        nInBufferSize: DWORD,
        nDefaultTimeOut: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> HANDLE;
}
extern "C" {
    pub fn ReplaceFileA(
        lpReplacedFileName: LPCSTR,
        lpReplacementFileName: LPCSTR,
        lpBackupFileName: LPCSTR,
        dwReplaceFlags: DWORD,
        lpExclude: LPVOID,
        lpReserved: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReplaceFileW(
        lpReplacedFileName: LPCWSTR,
        lpReplacementFileName: LPCWSTR,
        lpBackupFileName: LPCWSTR,
        dwReplaceFlags: DWORD,
        lpExclude: LPVOID,
        lpReserved: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateHardLinkA(
        lpFileName: LPCSTR,
        lpExistingFileName: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateHardLinkW(
        lpFileName: LPCWSTR,
        lpExistingFileName: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> WINBOOL;
}
pub const _STREAM_INFO_LEVELS_FindStreamInfoStandard: _STREAM_INFO_LEVELS = 0;
pub const _STREAM_INFO_LEVELS_FindStreamInfoMaxInfoLevel: _STREAM_INFO_LEVELS = 1;
pub type _STREAM_INFO_LEVELS = u32;
pub use self::_STREAM_INFO_LEVELS as STREAM_INFO_LEVELS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WIN32_FIND_STREAM_DATA {
    pub StreamSize: LARGE_INTEGER,
    pub cStreamName: [WCHAR; 296usize],
}
pub type WIN32_FIND_STREAM_DATA = _WIN32_FIND_STREAM_DATA;
pub type PWIN32_FIND_STREAM_DATA = *mut _WIN32_FIND_STREAM_DATA;
extern "C" {
    pub fn FindFirstStreamW(
        lpFileName: LPCWSTR,
        InfoLevel: STREAM_INFO_LEVELS,
        lpFindStreamData: LPVOID,
        dwFlags: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindNextStreamW(hFindStream: HANDLE, lpFindStreamData: LPVOID) -> WINBOOL;
}
extern "C" {
    pub fn GetNamedPipeHandleStateW(
        hNamedPipe: HANDLE,
        lpState: LPDWORD,
        lpCurInstances: LPDWORD,
        lpMaxCollectionCount: LPDWORD,
        lpCollectDataTimeout: LPDWORD,
        lpUserName: LPWSTR,
        nMaxUserNameSize: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetVolumeLabelA(lpRootPathName: LPCSTR, lpVolumeName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetVolumeLabelW(lpRootPathName: LPCWSTR, lpVolumeName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetFileApisToOEM();
}
extern "C" {
    pub fn SetFileApisToANSI();
}
extern "C" {
    pub fn AreFileApisANSI() -> WINBOOL;
}
extern "C" {
    pub fn GetVolumeInformationA(
        lpRootPathName: LPCSTR,
        lpVolumeNameBuffer: LPSTR,
        nVolumeNameSize: DWORD,
        lpVolumeSerialNumber: LPDWORD,
        lpMaximumComponentLength: LPDWORD,
        lpFileSystemFlags: LPDWORD,
        lpFileSystemNameBuffer: LPSTR,
        nFileSystemNameSize: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ClearEventLogA(hEventLog: HANDLE, lpBackupFileName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn ClearEventLogW(hEventLog: HANDLE, lpBackupFileName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn BackupEventLogA(hEventLog: HANDLE, lpBackupFileName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn BackupEventLogW(hEventLog: HANDLE, lpBackupFileName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn CloseEventLog(hEventLog: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn DeregisterEventSource(hEventLog: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn NotifyChangeEventLog(hEventLog: HANDLE, hEvent: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn GetNumberOfEventLogRecords(hEventLog: HANDLE, NumberOfRecords: PDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetOldestEventLogRecord(hEventLog: HANDLE, OldestRecord: PDWORD) -> WINBOOL;
}
extern "C" {
    pub fn OpenEventLogA(lpUNCServerName: LPCSTR, lpSourceName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenEventLogW(lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn RegisterEventSourceA(lpUNCServerName: LPCSTR, lpSourceName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn RegisterEventSourceW(lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenBackupEventLogA(lpUNCServerName: LPCSTR, lpFileName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenBackupEventLogW(lpUNCServerName: LPCWSTR, lpFileName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn ReadEventLogA(
        hEventLog: HANDLE,
        dwReadFlags: DWORD,
        dwRecordOffset: DWORD,
        lpBuffer: LPVOID,
        nNumberOfBytesToRead: DWORD,
        pnBytesRead: *mut DWORD,
        pnMinNumberOfBytesNeeded: *mut DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadEventLogW(
        hEventLog: HANDLE,
        dwReadFlags: DWORD,
        dwRecordOffset: DWORD,
        lpBuffer: LPVOID,
        nNumberOfBytesToRead: DWORD,
        pnBytesRead: *mut DWORD,
        pnMinNumberOfBytesNeeded: *mut DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReportEventA(
        hEventLog: HANDLE,
        wType: WORD,
        wCategory: WORD,
        dwEventID: DWORD,
        lpUserSid: PSID,
        wNumStrings: WORD,
        dwDataSize: DWORD,
        lpStrings: *mut LPCSTR,
        lpRawData: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReportEventW(
        hEventLog: HANDLE,
        wType: WORD,
        wCategory: WORD,
        dwEventID: DWORD,
        lpUserSid: PSID,
        wNumStrings: WORD,
        dwDataSize: DWORD,
        lpStrings: *mut LPCWSTR,
        lpRawData: LPVOID,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EVENTLOG_FULL_INFORMATION {
    pub dwFull: DWORD,
}
pub type EVENTLOG_FULL_INFORMATION = _EVENTLOG_FULL_INFORMATION;
pub type LPEVENTLOG_FULL_INFORMATION = *mut _EVENTLOG_FULL_INFORMATION;
extern "C" {
    pub fn GetEventLogInformation(
        hEventLog: HANDLE,
        dwInfoLevel: DWORD,
        lpBuffer: LPVOID,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadDirectoryChangesW(
        hDirectory: HANDLE,
        lpBuffer: LPVOID,
        nBufferLength: DWORD,
        bWatchSubtree: WINBOOL,
        dwNotifyFilter: DWORD,
        lpBytesReturned: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckAndAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPSTR,
        ObjectName: LPSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        DesiredAccess: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: WINBOOL,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
        pfGenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckByTypeAndAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPCSTR,
        ObjectName: LPCSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        PrincipalSelfSid: PSID,
        DesiredAccess: DWORD,
        AuditType: AUDIT_EVENT_TYPE,
        Flags: DWORD,
        ObjectTypeList: POBJECT_TYPE_LIST,
        ObjectTypeListLength: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: WINBOOL,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
        pfGenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckByTypeResultListAndAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPCSTR,
        ObjectName: LPCSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        PrincipalSelfSid: PSID,
        DesiredAccess: DWORD,
        AuditType: AUDIT_EVENT_TYPE,
        Flags: DWORD,
        ObjectTypeList: POBJECT_TYPE_LIST,
        ObjectTypeListLength: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: WINBOOL,
        GrantedAccess: LPDWORD,
        AccessStatusList: LPDWORD,
        pfGenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AccessCheckByTypeResultListAndAuditAlarmByHandleA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        ClientToken: HANDLE,
        ObjectTypeName: LPCSTR,
        ObjectName: LPCSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        PrincipalSelfSid: PSID,
        DesiredAccess: DWORD,
        AuditType: AUDIT_EVENT_TYPE,
        Flags: DWORD,
        ObjectTypeList: POBJECT_TYPE_LIST,
        ObjectTypeListLength: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: WINBOOL,
        GrantedAccess: LPDWORD,
        AccessStatusList: LPDWORD,
        pfGenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ObjectOpenAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPSTR,
        ObjectName: LPSTR,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        GrantedAccess: DWORD,
        Privileges: PPRIVILEGE_SET,
        ObjectCreation: WINBOOL,
        AccessGranted: WINBOOL,
        GenerateOnClose: LPBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ObjectPrivilegeAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        Privileges: PPRIVILEGE_SET,
        AccessGranted: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ObjectCloseAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        GenerateOnClose: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ObjectDeleteAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        GenerateOnClose: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PrivilegedServiceAuditAlarmA(
        SubsystemName: LPCSTR,
        ServiceName: LPCSTR,
        ClientToken: HANDLE,
        Privileges: PPRIVILEGE_SET,
        AccessGranted: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetFileSecurityA(
        lpFileName: LPCSTR,
        SecurityInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetFileSecurityA(
        lpFileName: LPCSTR,
        RequestedInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn IsBadReadPtr(lp: *const ::std::os::raw::c_void, ucb: UINT_PTR) -> WINBOOL;
}
extern "C" {
    pub fn IsBadWritePtr(lp: LPVOID, ucb: UINT_PTR) -> WINBOOL;
}
extern "C" {
    pub fn IsBadHugeReadPtr(lp: *const ::std::os::raw::c_void, ucb: UINT_PTR) -> WINBOOL;
}
extern "C" {
    pub fn IsBadHugeWritePtr(lp: LPVOID, ucb: UINT_PTR) -> WINBOOL;
}
extern "C" {
    pub fn IsBadCodePtr(lpfn: FARPROC) -> WINBOOL;
}
extern "C" {
    pub fn IsBadStringPtrA(lpsz: LPCSTR, ucchMax: UINT_PTR) -> WINBOOL;
}
extern "C" {
    pub fn IsBadStringPtrW(lpsz: LPCWSTR, ucchMax: UINT_PTR) -> WINBOOL;
}
extern "C" {
    pub fn LookupAccountSidA(
        lpSystemName: LPCSTR,
        Sid: PSID,
        Name: LPSTR,
        cchName: LPDWORD,
        ReferencedDomainName: LPSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LookupAccountSidW(
        lpSystemName: LPCWSTR,
        Sid: PSID,
        Name: LPWSTR,
        cchName: LPDWORD,
        ReferencedDomainName: LPWSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LookupAccountNameA(
        lpSystemName: LPCSTR,
        lpAccountName: LPCSTR,
        Sid: PSID,
        cbSid: LPDWORD,
        ReferencedDomainName: LPSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LookupAccountNameW(
        lpSystemName: LPCWSTR,
        lpAccountName: LPCWSTR,
        Sid: PSID,
        cbSid: LPDWORD,
        ReferencedDomainName: LPWSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LookupPrivilegeValueA(lpSystemName: LPCSTR, lpName: LPCSTR, lpLuid: PLUID) -> WINBOOL;
}
extern "C" {
    pub fn LookupPrivilegeValueW(lpSystemName: LPCWSTR, lpName: LPCWSTR, lpLuid: PLUID) -> WINBOOL;
}
extern "C" {
    pub fn LookupPrivilegeNameA(
        lpSystemName: LPCSTR,
        lpLuid: PLUID,
        lpName: LPSTR,
        cchName: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LookupPrivilegeNameW(
        lpSystemName: LPCWSTR,
        lpLuid: PLUID,
        lpName: LPWSTR,
        cchName: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LookupPrivilegeDisplayNameA(
        lpSystemName: LPCSTR,
        lpName: LPCSTR,
        lpDisplayName: LPSTR,
        cchDisplayName: LPDWORD,
        lpLanguageId: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LookupPrivilegeDisplayNameW(
        lpSystemName: LPCWSTR,
        lpName: LPCWSTR,
        lpDisplayName: LPWSTR,
        cchDisplayName: LPDWORD,
        lpLanguageId: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn BuildCommDCBA(lpDef: LPCSTR, lpDCB: LPDCB) -> WINBOOL;
}
extern "C" {
    pub fn BuildCommDCBW(lpDef: LPCWSTR, lpDCB: LPDCB) -> WINBOOL;
}
extern "C" {
    pub fn BuildCommDCBAndTimeoutsA(
        lpDef: LPCSTR,
        lpDCB: LPDCB,
        lpCommTimeouts: LPCOMMTIMEOUTS,
    ) -> WINBOOL;
}
extern "C" {
    pub fn BuildCommDCBAndTimeoutsW(
        lpDef: LPCWSTR,
        lpDCB: LPDCB,
        lpCommTimeouts: LPCOMMTIMEOUTS,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CommConfigDialogA(lpszName: LPCSTR, hWnd: HWND, lpCC: LPCOMMCONFIG) -> WINBOOL;
}
extern "C" {
    pub fn CommConfigDialogW(lpszName: LPCWSTR, hWnd: HWND, lpCC: LPCOMMCONFIG) -> WINBOOL;
}
extern "C" {
    pub fn GetDefaultCommConfigA(
        lpszName: LPCSTR,
        lpCC: LPCOMMCONFIG,
        lpdwSize: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetDefaultCommConfigW(
        lpszName: LPCWSTR,
        lpCC: LPCOMMCONFIG,
        lpdwSize: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetDefaultCommConfigA(lpszName: LPCSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetDefaultCommConfigW(lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetComputerNameA(lpBuffer: LPSTR, nSize: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetComputerNameW(lpBuffer: LPWSTR, nSize: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetComputerNameA(lpComputerName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetComputerNameW(lpComputerName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetComputerNameExA(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCTSTR) -> WINBOOL;
}
extern "C" {
    pub fn DnsHostnameToComputerNameA(
        Hostname: LPCSTR,
        ComputerName: LPSTR,
        nSize: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DnsHostnameToComputerNameW(
        Hostname: LPCWSTR,
        ComputerName: LPWSTR,
        nSize: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetUserNameA(lpBuffer: LPSTR, pcbBuffer: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetUserNameW(lpBuffer: LPWSTR, pcbBuffer: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn LogonUserA(
        lpszUsername: LPCSTR,
        lpszDomain: LPCSTR,
        lpszPassword: LPCSTR,
        dwLogonType: DWORD,
        dwLogonProvider: DWORD,
        phToken: PHANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LogonUserW(
        lpszUsername: LPCWSTR,
        lpszDomain: LPCWSTR,
        lpszPassword: LPCWSTR,
        dwLogonType: DWORD,
        dwLogonProvider: DWORD,
        phToken: PHANDLE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LogonUserExA(
        lpszUsername: LPCSTR,
        lpszDomain: LPCSTR,
        lpszPassword: LPCSTR,
        dwLogonType: DWORD,
        dwLogonProvider: DWORD,
        phToken: PHANDLE,
        ppLogonSid: *mut PSID,
        ppProfileBuffer: *mut PVOID,
        pdwProfileLength: LPDWORD,
        pQuotaLimits: PQUOTA_LIMITS,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LogonUserExW(
        lpszUsername: LPCWSTR,
        lpszDomain: LPCWSTR,
        lpszPassword: LPCWSTR,
        dwLogonType: DWORD,
        dwLogonProvider: DWORD,
        phToken: PHANDLE,
        ppLogonSid: *mut PSID,
        ppProfileBuffer: *mut PVOID,
        pdwProfileLength: LPDWORD,
        pQuotaLimits: PQUOTA_LIMITS,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateProcessAsUserA(
        hToken: HANDLE,
        lpApplicationName: LPCSTR,
        lpCommandLine: LPSTR,
        lpProcessAttributes: LPSECURITY_ATTRIBUTES,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        bInheritHandles: WINBOOL,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCSTR,
        lpStartupInfo: LPSTARTUPINFOA,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateProcessWithLogonW(
        lpUsername: LPCWSTR,
        lpDomain: LPCWSTR,
        lpPassword: LPCWSTR,
        dwLogonFlags: DWORD,
        lpApplicationName: LPCWSTR,
        lpCommandLine: LPWSTR,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCWSTR,
        lpStartupInfo: LPSTARTUPINFOW,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateProcessWithTokenW(
        hToken: HANDLE,
        dwLogonFlags: DWORD,
        lpApplicationName: LPCWSTR,
        lpCommandLine: LPWSTR,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCWSTR,
        lpStartupInfo: LPSTARTUPINFOW,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> WINBOOL;
}
extern "C" {
    pub fn IsTokenUntrusted(TokenHandle: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn RegisterWaitForSingleObject(
        phNewWaitObject: PHANDLE,
        hObject: HANDLE,
        Callback: WAITORTIMERCALLBACK,
        Context: PVOID,
        dwMilliseconds: ULONG,
        dwFlags: ULONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn UnregisterWait(WaitHandle: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn BindIoCompletionCallback(
        FileHandle: HANDLE,
        Function: LPOVERLAPPED_COMPLETION_ROUTINE,
        Flags: ULONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetTimerQueueTimer(
        TimerQueue: HANDLE,
        Callback: WAITORTIMERCALLBACK,
        Parameter: PVOID,
        DueTime: DWORD,
        Period: DWORD,
        PreferIo: WINBOOL,
    ) -> HANDLE;
}
extern "C" {
    pub fn CancelTimerQueueTimer(TimerQueue: HANDLE, Timer: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn DeleteTimerQueue(TimerQueue: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn CreatePrivateNamespaceA(
        lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES,
        lpBoundaryDescriptor: LPVOID,
        lpAliasPrefix: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenPrivateNamespaceA(lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn CreateBoundaryDescriptorA(Name: LPCSTR, Flags: ULONG) -> HANDLE;
}
extern "C" {
    pub fn AddIntegrityLabelToBoundaryDescriptor(
        BoundaryDescriptor: *mut HANDLE,
        IntegrityLabel: PSID,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagHW_PROFILE_INFOA {
    pub dwDockInfo: DWORD,
    pub szHwProfileGuid: [CHAR; 39usize],
    pub szHwProfileName: [CHAR; 80usize],
}
pub type HW_PROFILE_INFOA = tagHW_PROFILE_INFOA;
pub type LPHW_PROFILE_INFOA = *mut tagHW_PROFILE_INFOA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagHW_PROFILE_INFOW {
    pub dwDockInfo: DWORD,
    pub szHwProfileGuid: [WCHAR; 39usize],
    pub szHwProfileName: [WCHAR; 80usize],
}
pub type HW_PROFILE_INFOW = tagHW_PROFILE_INFOW;
pub type LPHW_PROFILE_INFOW = *mut tagHW_PROFILE_INFOW;
pub type HW_PROFILE_INFO = HW_PROFILE_INFOA;
pub type LPHW_PROFILE_INFO = LPHW_PROFILE_INFOA;
extern "C" {
    pub fn GetCurrentHwProfileA(lpHwProfileInfo: LPHW_PROFILE_INFOA) -> WINBOOL;
}
extern "C" {
    pub fn GetCurrentHwProfileW(lpHwProfileInfo: LPHW_PROFILE_INFOW) -> WINBOOL;
}
extern "C" {
    pub fn VerifyVersionInfoA(
        lpVersionInformation: LPOSVERSIONINFOEXA,
        dwTypeMask: DWORD,
        dwlConditionMask: DWORDLONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn VerifyVersionInfoW(
        lpVersionInformation: LPOSVERSIONINFOEXW,
        dwTypeMask: DWORD,
        dwlConditionMask: DWORDLONG,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TIME_ZONE_INFORMATION {
    pub Bias: LONG,
    pub StandardName: [WCHAR; 32usize],
    pub StandardDate: SYSTEMTIME,
    pub StandardBias: LONG,
    pub DaylightName: [WCHAR; 32usize],
    pub DaylightDate: SYSTEMTIME,
    pub DaylightBias: LONG,
}
pub type TIME_ZONE_INFORMATION = _TIME_ZONE_INFORMATION;
pub type PTIME_ZONE_INFORMATION = *mut _TIME_ZONE_INFORMATION;
pub type LPTIME_ZONE_INFORMATION = *mut _TIME_ZONE_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TIME_DYNAMIC_ZONE_INFORMATION {
    pub Bias: LONG,
    pub StandardName: [WCHAR; 32usize],
    pub StandardDate: SYSTEMTIME,
    pub StandardBias: LONG,
    pub DaylightName: [WCHAR; 32usize],
    pub DaylightDate: SYSTEMTIME,
    pub DaylightBias: LONG,
    pub TimeZoneKeyName: [WCHAR; 128usize],
    pub DynamicDaylightTimeDisabled: BOOLEAN,
}
pub type DYNAMIC_TIME_ZONE_INFORMATION = _TIME_DYNAMIC_ZONE_INFORMATION;
pub type PDYNAMIC_TIME_ZONE_INFORMATION = *mut _TIME_DYNAMIC_ZONE_INFORMATION;
extern "C" {
    pub fn SystemTimeToTzSpecificLocalTime(
        lpTimeZoneInformation: *const TIME_ZONE_INFORMATION,
        lpUniversalTime: *const SYSTEMTIME,
        lpLocalTime: LPSYSTEMTIME,
    ) -> WINBOOL;
}
extern "C" {
    pub fn TzSpecificLocalTimeToSystemTime(
        lpTimeZoneInformation: *const TIME_ZONE_INFORMATION,
        lpLocalTime: *const SYSTEMTIME,
        lpUniversalTime: LPSYSTEMTIME,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FileTimeToSystemTime(lpFileTime: *const FILETIME, lpSystemTime: LPSYSTEMTIME)
        -> WINBOOL;
}
extern "C" {
    pub fn SystemTimeToFileTime(lpSystemTime: *const SYSTEMTIME, lpFileTime: LPFILETIME)
        -> WINBOOL;
}
extern "C" {
    pub fn GetTimeZoneInformation(lpTimeZoneInformation: LPTIME_ZONE_INFORMATION) -> DWORD;
}
extern "C" {
    pub fn SetTimeZoneInformation(lpTimeZoneInformation: *const TIME_ZONE_INFORMATION) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_POWER_STATUS {
    pub ACLineStatus: BYTE,
    pub BatteryFlag: BYTE,
    pub BatteryLifePercent: BYTE,
    pub Reserved1: BYTE,
    pub BatteryLifeTime: DWORD,
    pub BatteryFullLifeTime: DWORD,
}
pub type SYSTEM_POWER_STATUS = _SYSTEM_POWER_STATUS;
pub type LPSYSTEM_POWER_STATUS = *mut _SYSTEM_POWER_STATUS;
extern "C" {
    pub fn GetSystemPowerStatus(lpSystemPowerStatus: LPSYSTEM_POWER_STATUS) -> WINBOOL;
}
extern "C" {
    pub fn SetSystemPowerState(fSuspend: WINBOOL, fForce: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn AllocateUserPhysicalPages(
        hProcess: HANDLE,
        NumberOfPages: PULONG_PTR,
        PageArray: PULONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FreeUserPhysicalPages(
        hProcess: HANDLE,
        NumberOfPages: PULONG_PTR,
        PageArray: PULONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MapUserPhysicalPages(
        VirtualAddress: PVOID,
        NumberOfPages: ULONG_PTR,
        PageArray: PULONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MapUserPhysicalPagesScatter(
        VirtualAddresses: *mut PVOID,
        NumberOfPages: ULONG_PTR,
        PageArray: PULONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateJobObjectA(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn CreateJobObjectW(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenJobObjectA(
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenJobObjectW(
        dwDesiredAccess: DWORD,
        bInheritHandle: WINBOOL,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn AssignProcessToJobObject(hJob: HANDLE, hProcess: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn TerminateJobObject(hJob: HANDLE, uExitCode: UINT) -> WINBOOL;
}
extern "C" {
    pub fn QueryInformationJobObject(
        hJob: HANDLE,
        JobObjectInformationClass: JOBOBJECTINFOCLASS,
        lpJobObjectInformation: LPVOID,
        cbJobObjectInformationLength: DWORD,
        lpReturnLength: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetInformationJobObject(
        hJob: HANDLE,
        JobObjectInformationClass: JOBOBJECTINFOCLASS,
        lpJobObjectInformation: LPVOID,
        cbJobObjectInformationLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateJobSet(NumJob: ULONG, UserJobSet: PJOB_SET_ARRAY, Flags: ULONG) -> WINBOOL;
}
extern "C" {
    pub fn FindFirstVolumeA(lpszVolumeName: LPSTR, cchBufferLength: DWORD) -> HANDLE;
}
extern "C" {
    pub fn FindNextVolumeA(
        hFindVolume: HANDLE,
        lpszVolumeName: LPSTR,
        cchBufferLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindFirstVolumeMountPointA(
        lpszRootPathName: LPCSTR,
        lpszVolumeMountPoint: LPSTR,
        cchBufferLength: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindFirstVolumeMountPointW(
        lpszRootPathName: LPCWSTR,
        lpszVolumeMountPoint: LPWSTR,
        cchBufferLength: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindNextVolumeMountPointA(
        hFindVolumeMountPoint: HANDLE,
        lpszVolumeMountPoint: LPSTR,
        cchBufferLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindNextVolumeMountPointW(
        hFindVolumeMountPoint: HANDLE,
        lpszVolumeMountPoint: LPWSTR,
        cchBufferLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindVolumeMountPointClose(hFindVolumeMountPoint: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn SetVolumeMountPointA(lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn DeleteVolumeMountPointA(lpszVolumeMountPoint: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetVolumeNameForVolumeMountPointA(
        lpszVolumeMountPoint: LPCSTR,
        lpszVolumeName: LPSTR,
        cchBufferLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetVolumePathNameA(
        lpszFileName: LPCSTR,
        lpszVolumePathName: LPSTR,
        cchBufferLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetVolumePathNamesForVolumeNameA(
        lpszVolumeName: LPCSTR,
        lpszVolumePathNames: LPCH,
        cchBufferLength: DWORD,
        lpcchReturnLength: PDWORD,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagACTCTXA {
    pub cbSize: ULONG,
    pub dwFlags: DWORD,
    pub lpSource: LPCSTR,
    pub wProcessorArchitecture: USHORT,
    pub wLangId: LANGID,
    pub lpAssemblyDirectory: LPCSTR,
    pub lpResourceName: LPCSTR,
    pub lpApplicationName: LPCSTR,
    pub hModule: HMODULE,
}
pub type ACTCTXA = tagACTCTXA;
pub type PACTCTXA = *mut tagACTCTXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagACTCTXW {
    pub cbSize: ULONG,
    pub dwFlags: DWORD,
    pub lpSource: LPCWSTR,
    pub wProcessorArchitecture: USHORT,
    pub wLangId: LANGID,
    pub lpAssemblyDirectory: LPCWSTR,
    pub lpResourceName: LPCWSTR,
    pub lpApplicationName: LPCWSTR,
    pub hModule: HMODULE,
}
pub type ACTCTXW = tagACTCTXW;
pub type PACTCTXW = *mut tagACTCTXW;
pub type ACTCTX = ACTCTXA;
pub type PACTCTX = PACTCTXA;
pub type PCACTCTXA = *const ACTCTXA;
pub type PCACTCTXW = *const ACTCTXW;
pub type PCACTCTX = PCACTCTXA;
extern "C" {
    pub fn CreateActCtxA(pActCtx: PCACTCTXA) -> HANDLE;
}
extern "C" {
    pub fn CreateActCtxW(pActCtx: PCACTCTXW) -> HANDLE;
}
extern "C" {
    pub fn AddRefActCtx(hActCtx: HANDLE);
}
extern "C" {
    pub fn ReleaseActCtx(hActCtx: HANDLE);
}
extern "C" {
    pub fn ZombifyActCtx(hActCtx: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn ActivateActCtx(hActCtx: HANDLE, lpCookie: *mut ULONG_PTR) -> WINBOOL;
}
extern "C" {
    pub fn DeactivateActCtx(dwFlags: DWORD, ulCookie: ULONG_PTR) -> WINBOOL;
}
extern "C" {
    pub fn GetCurrentActCtx(lphActCtx: *mut HANDLE) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagACTCTX_SECTION_KEYED_DATA_2600 {
    pub cbSize: ULONG,
    pub ulDataFormatVersion: ULONG,
    pub lpData: PVOID,
    pub ulLength: ULONG,
    pub lpSectionGlobalData: PVOID,
    pub ulSectionGlobalDataLength: ULONG,
    pub lpSectionBase: PVOID,
    pub ulSectionTotalLength: ULONG,
    pub hActCtx: HANDLE,
    pub ulAssemblyRosterIndex: ULONG,
}
pub type ACTCTX_SECTION_KEYED_DATA_2600 = tagACTCTX_SECTION_KEYED_DATA_2600;
pub type PACTCTX_SECTION_KEYED_DATA_2600 = *mut tagACTCTX_SECTION_KEYED_DATA_2600;
pub type PCACTCTX_SECTION_KEYED_DATA_2600 = *const ACTCTX_SECTION_KEYED_DATA_2600;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
    pub lpInformation: PVOID,
    pub lpSectionBase: PVOID,
    pub ulSectionLength: ULONG,
    pub lpSectionGlobalDataBase: PVOID,
    pub ulSectionGlobalDataLength: ULONG,
}
pub type ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA =
    tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
pub type PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA =
    *mut tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
pub type PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA =
    *const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagACTCTX_SECTION_KEYED_DATA {
    pub cbSize: ULONG,
    pub ulDataFormatVersion: ULONG,
    pub lpData: PVOID,
    pub ulLength: ULONG,
    pub lpSectionGlobalData: PVOID,
    pub ulSectionGlobalDataLength: ULONG,
    pub lpSectionBase: PVOID,
    pub ulSectionTotalLength: ULONG,
    pub hActCtx: HANDLE,
    pub ulAssemblyRosterIndex: ULONG,
    pub ulFlags: ULONG,
    pub AssemblyMetadata: ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA,
}
pub type ACTCTX_SECTION_KEYED_DATA = tagACTCTX_SECTION_KEYED_DATA;
pub type PACTCTX_SECTION_KEYED_DATA = *mut tagACTCTX_SECTION_KEYED_DATA;
pub type PCACTCTX_SECTION_KEYED_DATA = *const ACTCTX_SECTION_KEYED_DATA;
extern "C" {
    pub fn FindActCtxSectionStringA(
        dwFlags: DWORD,
        lpExtensionGuid: *const GUID,
        ulSectionId: ULONG,
        lpStringToFind: LPCSTR,
        ReturnedData: PACTCTX_SECTION_KEYED_DATA,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindActCtxSectionStringW(
        dwFlags: DWORD,
        lpExtensionGuid: *const GUID,
        ulSectionId: ULONG,
        lpStringToFind: LPCWSTR,
        ReturnedData: PACTCTX_SECTION_KEYED_DATA,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FindActCtxSectionGuid(
        dwFlags: DWORD,
        lpExtensionGuid: *const GUID,
        ulSectionId: ULONG,
        lpGuidToFind: *const GUID,
        ReturnedData: PACTCTX_SECTION_KEYED_DATA,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
    pub hActCtx: HANDLE,
    pub dwFlags: DWORD,
}
pub type ACTIVATION_CONTEXT_BASIC_INFORMATION = _ACTIVATION_CONTEXT_BASIC_INFORMATION;
pub type PACTIVATION_CONTEXT_BASIC_INFORMATION = *mut _ACTIVATION_CONTEXT_BASIC_INFORMATION;
pub type PCACTIVATION_CONTEXT_BASIC_INFORMATION = *const _ACTIVATION_CONTEXT_BASIC_INFORMATION;
extern "C" {
    pub fn QueryActCtxW(
        dwFlags: DWORD,
        hActCtx: HANDLE,
        pvSubInstance: PVOID,
        ulInfoClass: ULONG,
        pvBuffer: PVOID,
        cbBuffer: SIZE_T,
        pcbWrittenOrRequired: *mut SIZE_T,
    ) -> WINBOOL;
}
pub type PQUERYACTCTXW_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        dwFlags: DWORD,
        hActCtx: HANDLE,
        pvSubInstance: PVOID,
        ulInfoClass: ULONG,
        pvBuffer: PVOID,
        cbBuffer: SIZE_T,
        pcbWrittenOrRequired: *mut SIZE_T,
    ) -> WINBOOL,
>;
extern "C" {
    pub fn WTSGetActiveConsoleSessionId() -> DWORD;
}
extern "C" {
    pub fn GetNumaProcessorNode(Processor: UCHAR, NodeNumber: PUCHAR) -> WINBOOL;
}
extern "C" {
    pub fn GetNumaNodeProcessorMask(Node: UCHAR, ProcessorMask: PULONGLONG) -> WINBOOL;
}
extern "C" {
    pub fn GetNumaAvailableMemoryNode(Node: UCHAR, AvailableBytes: PULONGLONG) -> WINBOOL;
}
pub type APPLICATION_RECOVERY_CALLBACK =
    ::std::option::Option<unsafe extern "C" fn(pvParameter: PVOID) -> DWORD>;
extern "C" {
    pub fn CopyContext(Destination: PCONTEXT, ContextFlags: DWORD, Source: PCONTEXT) -> WINBOOL;
}
extern "C" {
    pub fn InitializeContext(
        Buffer: PVOID,
        ContextFlags: DWORD,
        Context: *mut PCONTEXT,
        ContextLength: PDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetEnabledXStateFeatures() -> DWORD64;
}
extern "C" {
    pub fn GetXStateFeaturesMask(Context: PCONTEXT, FeatureMask: PDWORD64) -> WINBOOL;
}
extern "C" {
    pub fn LocateXStateFeature(Context: PCONTEXT, FeatureId: DWORD, Length: PDWORD) -> PVOID;
}
extern "C" {
    pub fn SetXStateFeaturesMask(Context: PCONTEXT, FeatureMask: DWORD64) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRAWPATRECT {
    pub ptPosition: POINT,
    pub ptSize: POINT,
    pub wStyle: WORD,
    pub wPattern: WORD,
}
pub type DRAWPATRECT = _DRAWPATRECT;
pub type PDRAWPATRECT = *mut _DRAWPATRECT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PSINJECTDATA {
    pub DataBytes: DWORD,
    pub InjectionPoint: WORD,
    pub PageNumber: WORD,
}
pub type PSINJECTDATA = _PSINJECTDATA;
pub type PPSINJECTDATA = *mut _PSINJECTDATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PSFEATURE_OUTPUT {
    pub bPageIndependent: WINBOOL,
    pub bSetPageDevice: WINBOOL,
}
pub type PSFEATURE_OUTPUT = _PSFEATURE_OUTPUT;
pub type PPSFEATURE_OUTPUT = *mut _PSFEATURE_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PSFEATURE_CUSTPAPER {
    pub lOrientation: LONG,
    pub lWidth: LONG,
    pub lHeight: LONG,
    pub lWidthOffset: LONG,
    pub lHeightOffset: LONG,
}
pub type PSFEATURE_CUSTPAPER = _PSFEATURE_CUSTPAPER;
pub type PPSFEATURE_CUSTPAPER = *mut _PSFEATURE_CUSTPAPER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagXFORM {
    pub eM11: FLOAT,
    pub eM12: FLOAT,
    pub eM21: FLOAT,
    pub eM22: FLOAT,
    pub eDx: FLOAT,
    pub eDy: FLOAT,
}
pub type XFORM = tagXFORM;
pub type PXFORM = *mut tagXFORM;
pub type LPXFORM = *mut tagXFORM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBITMAP {
    pub bmType: LONG,
    pub bmWidth: LONG,
    pub bmHeight: LONG,
    pub bmWidthBytes: LONG,
    pub bmPlanes: WORD,
    pub bmBitsPixel: WORD,
    pub bmBits: LPVOID,
}
pub type BITMAP = tagBITMAP;
pub type PBITMAP = *mut tagBITMAP;
pub type NPBITMAP = *mut tagBITMAP;
pub type LPBITMAP = *mut tagBITMAP;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRGBTRIPLE {
    pub rgbtBlue: BYTE,
    pub rgbtGreen: BYTE,
    pub rgbtRed: BYTE,
}
pub type RGBTRIPLE = tagRGBTRIPLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRGBQUAD {
    pub rgbBlue: BYTE,
    pub rgbGreen: BYTE,
    pub rgbRed: BYTE,
    pub rgbReserved: BYTE,
}
pub type RGBQUAD = tagRGBQUAD;
pub type LPRGBQUAD = *mut RGBQUAD;
pub type LCSCSTYPE = LONG;
pub type LCSGAMUTMATCH = LONG;
pub type FXPT16DOT16 = ::std::os::raw::c_long;
pub type LPFXPT16DOT16 = *mut ::std::os::raw::c_long;
pub type FXPT2DOT30 = ::std::os::raw::c_long;
pub type LPFXPT2DOT30 = *mut ::std::os::raw::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCIEXYZ {
    pub ciexyzX: FXPT2DOT30,
    pub ciexyzY: FXPT2DOT30,
    pub ciexyzZ: FXPT2DOT30,
}
pub type CIEXYZ = tagCIEXYZ;
pub type LPCIEXYZ = *mut CIEXYZ;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagICEXYZTRIPLE {
    pub ciexyzRed: CIEXYZ,
    pub ciexyzGreen: CIEXYZ,
    pub ciexyzBlue: CIEXYZ,
}
pub type CIEXYZTRIPLE = tagICEXYZTRIPLE;
pub type LPCIEXYZTRIPLE = *mut CIEXYZTRIPLE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagLOGCOLORSPACEA {
    pub lcsSignature: DWORD,
    pub lcsVersion: DWORD,
    pub lcsSize: DWORD,
    pub lcsCSType: LCSCSTYPE,
    pub lcsIntent: LCSGAMUTMATCH,
    pub lcsEndpoints: CIEXYZTRIPLE,
    pub lcsGammaRed: DWORD,
    pub lcsGammaGreen: DWORD,
    pub lcsGammaBlue: DWORD,
    pub lcsFilename: [CHAR; 260usize],
}
pub type LOGCOLORSPACEA = tagLOGCOLORSPACEA;
pub type LPLOGCOLORSPACEA = *mut tagLOGCOLORSPACEA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagLOGCOLORSPACEW {
    pub lcsSignature: DWORD,
    pub lcsVersion: DWORD,
    pub lcsSize: DWORD,
    pub lcsCSType: LCSCSTYPE,
    pub lcsIntent: LCSGAMUTMATCH,
    pub lcsEndpoints: CIEXYZTRIPLE,
    pub lcsGammaRed: DWORD,
    pub lcsGammaGreen: DWORD,
    pub lcsGammaBlue: DWORD,
    pub lcsFilename: [WCHAR; 260usize],
}
pub type LOGCOLORSPACEW = tagLOGCOLORSPACEW;
pub type LPLOGCOLORSPACEW = *mut tagLOGCOLORSPACEW;
pub type LOGCOLORSPACE = LOGCOLORSPACEA;
pub type LPLOGCOLORSPACE = LPLOGCOLORSPACEA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBITMAPCOREHEADER {
    pub bcSize: DWORD,
    pub bcWidth: WORD,
    pub bcHeight: WORD,
    pub bcPlanes: WORD,
    pub bcBitCount: WORD,
}
pub type BITMAPCOREHEADER = tagBITMAPCOREHEADER;
pub type LPBITMAPCOREHEADER = *mut tagBITMAPCOREHEADER;
pub type PBITMAPCOREHEADER = *mut tagBITMAPCOREHEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBITMAPINFOHEADER {
    pub biSize: DWORD,
    pub biWidth: LONG,
    pub biHeight: LONG,
    pub biPlanes: WORD,
    pub biBitCount: WORD,
    pub biCompression: DWORD,
    pub biSizeImage: DWORD,
    pub biXPelsPerMeter: LONG,
    pub biYPelsPerMeter: LONG,
    pub biClrUsed: DWORD,
    pub biClrImportant: DWORD,
}
pub type BITMAPINFOHEADER = tagBITMAPINFOHEADER;
pub type LPBITMAPINFOHEADER = *mut tagBITMAPINFOHEADER;
pub type PBITMAPINFOHEADER = *mut tagBITMAPINFOHEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BITMAPV4HEADER {
    pub bV4Size: DWORD,
    pub bV4Width: LONG,
    pub bV4Height: LONG,
    pub bV4Planes: WORD,
    pub bV4BitCount: WORD,
    pub bV4V4Compression: DWORD,
    pub bV4SizeImage: DWORD,
    pub bV4XPelsPerMeter: LONG,
    pub bV4YPelsPerMeter: LONG,
    pub bV4ClrUsed: DWORD,
    pub bV4ClrImportant: DWORD,
    pub bV4RedMask: DWORD,
    pub bV4GreenMask: DWORD,
    pub bV4BlueMask: DWORD,
    pub bV4AlphaMask: DWORD,
    pub bV4CSType: DWORD,
    pub bV4Endpoints: CIEXYZTRIPLE,
    pub bV4GammaRed: DWORD,
    pub bV4GammaGreen: DWORD,
    pub bV4GammaBlue: DWORD,
}
pub type LPBITMAPV4HEADER = *mut BITMAPV4HEADER;
pub type PBITMAPV4HEADER = *mut BITMAPV4HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BITMAPV5HEADER {
    pub bV5Size: DWORD,
    pub bV5Width: LONG,
    pub bV5Height: LONG,
    pub bV5Planes: WORD,
    pub bV5BitCount: WORD,
    pub bV5Compression: DWORD,
    pub bV5SizeImage: DWORD,
    pub bV5XPelsPerMeter: LONG,
    pub bV5YPelsPerMeter: LONG,
    pub bV5ClrUsed: DWORD,
    pub bV5ClrImportant: DWORD,
    pub bV5RedMask: DWORD,
    pub bV5GreenMask: DWORD,
    pub bV5BlueMask: DWORD,
    pub bV5AlphaMask: DWORD,
    pub bV5CSType: DWORD,
    pub bV5Endpoints: CIEXYZTRIPLE,
    pub bV5GammaRed: DWORD,
    pub bV5GammaGreen: DWORD,
    pub bV5GammaBlue: DWORD,
    pub bV5Intent: DWORD,
    pub bV5ProfileData: DWORD,
    pub bV5ProfileSize: DWORD,
    pub bV5Reserved: DWORD,
}
pub type LPBITMAPV5HEADER = *mut BITMAPV5HEADER;
pub type PBITMAPV5HEADER = *mut BITMAPV5HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBITMAPINFO {
    pub bmiHeader: BITMAPINFOHEADER,
    pub bmiColors: [RGBQUAD; 1usize],
}
pub type BITMAPINFO = tagBITMAPINFO;
pub type LPBITMAPINFO = *mut tagBITMAPINFO;
pub type PBITMAPINFO = *mut tagBITMAPINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBITMAPCOREINFO {
    pub bmciHeader: BITMAPCOREHEADER,
    pub bmciColors: [RGBTRIPLE; 1usize],
}
pub type BITMAPCOREINFO = tagBITMAPCOREINFO;
pub type LPBITMAPCOREINFO = *mut tagBITMAPCOREINFO;
pub type PBITMAPCOREINFO = *mut tagBITMAPCOREINFO;
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct tagBITMAPFILEHEADER {
    pub bfType: WORD,
    pub bfSize: DWORD,
    pub bfReserved1: WORD,
    pub bfReserved2: WORD,
    pub bfOffBits: DWORD,
}
pub type BITMAPFILEHEADER = tagBITMAPFILEHEADER;
pub type LPBITMAPFILEHEADER = *mut tagBITMAPFILEHEADER;
pub type PBITMAPFILEHEADER = *mut tagBITMAPFILEHEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagFONTSIGNATURE {
    pub fsUsb: [DWORD; 4usize],
    pub fsCsb: [DWORD; 2usize],
}
pub type FONTSIGNATURE = tagFONTSIGNATURE;
pub type PFONTSIGNATURE = *mut tagFONTSIGNATURE;
pub type LPFONTSIGNATURE = *mut tagFONTSIGNATURE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCHARSETINFO {
    pub ciCharset: UINT,
    pub ciACP: UINT,
    pub fs: FONTSIGNATURE,
}
pub type CHARSETINFO = tagCHARSETINFO;
pub type PCHARSETINFO = *mut tagCHARSETINFO;
pub type NPCHARSETINFO = *mut tagCHARSETINFO;
pub type LPCHARSETINFO = *mut tagCHARSETINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLOCALESIGNATURE {
    pub lsUsb: [DWORD; 4usize],
    pub lsCsbDefault: [DWORD; 2usize],
    pub lsCsbSupported: [DWORD; 2usize],
}
pub type LOCALESIGNATURE = tagLOCALESIGNATURE;
pub type PLOCALESIGNATURE = *mut tagLOCALESIGNATURE;
pub type LPLOCALESIGNATURE = *mut tagLOCALESIGNATURE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagHANDLETABLE {
    pub objectHandle: [HGDIOBJ; 1usize],
}
pub type HANDLETABLE = tagHANDLETABLE;
pub type PHANDLETABLE = *mut tagHANDLETABLE;
pub type LPHANDLETABLE = *mut tagHANDLETABLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMETARECORD {
    pub rdSize: DWORD,
    pub rdFunction: WORD,
    pub rdParm: [WORD; 1usize],
}
pub type METARECORD = tagMETARECORD;
pub type PMETARECORD = *mut tagMETARECORD;
pub type LPMETARECORD = *mut tagMETARECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMETAFILEPICT {
    pub mm: LONG,
    pub xExt: LONG,
    pub yExt: LONG,
    pub hMF: HMETAFILE,
}
pub type METAFILEPICT = tagMETAFILEPICT;
pub type LPMETAFILEPICT = *mut tagMETAFILEPICT;
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct tagMETAHEADER {
    pub mtType: WORD,
    pub mtHeaderSize: WORD,
    pub mtVersion: WORD,
    pub mtSize: DWORD,
    pub mtNoObjects: WORD,
    pub mtMaxRecord: DWORD,
    pub mtNoParameters: WORD,
}
pub type METAHEADER = tagMETAHEADER;
pub type PMETAHEADER = *mut tagMETAHEADER;
pub type LPMETAHEADER = *mut tagMETAHEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagENHMETARECORD {
    pub iType: DWORD,
    pub nSize: DWORD,
    pub dParm: [DWORD; 1usize],
}
pub type ENHMETARECORD = tagENHMETARECORD;
pub type PENHMETARECORD = *mut tagENHMETARECORD;
pub type LPENHMETARECORD = *mut tagENHMETARECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagENHMETAHEADER {
    pub iType: DWORD,
    pub nSize: DWORD,
    pub rclBounds: RECTL,
    pub rclFrame: RECTL,
    pub dSignature: DWORD,
    pub nVersion: DWORD,
    pub nBytes: DWORD,
    pub nRecords: DWORD,
    pub nHandles: WORD,
    pub sReserved: WORD,
    pub nDescription: DWORD,
    pub offDescription: DWORD,
    pub nPalEntries: DWORD,
    pub szlDevice: SIZEL,
    pub szlMillimeters: SIZEL,
    pub cbPixelFormat: DWORD,
    pub offPixelFormat: DWORD,
    pub bOpenGL: DWORD,
    pub szlMicrometers: SIZEL,
}
pub type ENHMETAHEADER = tagENHMETAHEADER;
pub type PENHMETAHEADER = *mut tagENHMETAHEADER;
pub type LPENHMETAHEADER = *mut tagENHMETAHEADER;
pub type BCHAR = BYTE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTEXTMETRICA {
    pub tmHeight: LONG,
    pub tmAscent: LONG,
    pub tmDescent: LONG,
    pub tmInternalLeading: LONG,
    pub tmExternalLeading: LONG,
    pub tmAveCharWidth: LONG,
    pub tmMaxCharWidth: LONG,
    pub tmWeight: LONG,
    pub tmOverhang: LONG,
    pub tmDigitizedAspectX: LONG,
    pub tmDigitizedAspectY: LONG,
    pub tmFirstChar: BYTE,
    pub tmLastChar: BYTE,
    pub tmDefaultChar: BYTE,
    pub tmBreakChar: BYTE,
    pub tmItalic: BYTE,
    pub tmUnderlined: BYTE,
    pub tmStruckOut: BYTE,
    pub tmPitchAndFamily: BYTE,
    pub tmCharSet: BYTE,
}
pub type TEXTMETRICA = tagTEXTMETRICA;
pub type PTEXTMETRICA = *mut tagTEXTMETRICA;
pub type NPTEXTMETRICA = *mut tagTEXTMETRICA;
pub type LPTEXTMETRICA = *mut tagTEXTMETRICA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTEXTMETRICW {
    pub tmHeight: LONG,
    pub tmAscent: LONG,
    pub tmDescent: LONG,
    pub tmInternalLeading: LONG,
    pub tmExternalLeading: LONG,
    pub tmAveCharWidth: LONG,
    pub tmMaxCharWidth: LONG,
    pub tmWeight: LONG,
    pub tmOverhang: LONG,
    pub tmDigitizedAspectX: LONG,
    pub tmDigitizedAspectY: LONG,
    pub tmFirstChar: WCHAR,
    pub tmLastChar: WCHAR,
    pub tmDefaultChar: WCHAR,
    pub tmBreakChar: WCHAR,
    pub tmItalic: BYTE,
    pub tmUnderlined: BYTE,
    pub tmStruckOut: BYTE,
    pub tmPitchAndFamily: BYTE,
    pub tmCharSet: BYTE,
}
pub type TEXTMETRICW = tagTEXTMETRICW;
pub type PTEXTMETRICW = *mut tagTEXTMETRICW;
pub type NPTEXTMETRICW = *mut tagTEXTMETRICW;
pub type LPTEXTMETRICW = *mut tagTEXTMETRICW;
pub type TEXTMETRIC = TEXTMETRICA;
pub type PTEXTMETRIC = PTEXTMETRICA;
pub type NPTEXTMETRIC = NPTEXTMETRICA;
pub type LPTEXTMETRIC = LPTEXTMETRICA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNEWTEXTMETRICA {
    pub tmHeight: LONG,
    pub tmAscent: LONG,
    pub tmDescent: LONG,
    pub tmInternalLeading: LONG,
    pub tmExternalLeading: LONG,
    pub tmAveCharWidth: LONG,
    pub tmMaxCharWidth: LONG,
    pub tmWeight: LONG,
    pub tmOverhang: LONG,
    pub tmDigitizedAspectX: LONG,
    pub tmDigitizedAspectY: LONG,
    pub tmFirstChar: BYTE,
    pub tmLastChar: BYTE,
    pub tmDefaultChar: BYTE,
    pub tmBreakChar: BYTE,
    pub tmItalic: BYTE,
    pub tmUnderlined: BYTE,
    pub tmStruckOut: BYTE,
    pub tmPitchAndFamily: BYTE,
    pub tmCharSet: BYTE,
    pub ntmFlags: DWORD,
    pub ntmSizeEM: UINT,
    pub ntmCellHeight: UINT,
    pub ntmAvgWidth: UINT,
}
pub type NEWTEXTMETRICA = tagNEWTEXTMETRICA;
pub type PNEWTEXTMETRICA = *mut tagNEWTEXTMETRICA;
pub type NPNEWTEXTMETRICA = *mut tagNEWTEXTMETRICA;
pub type LPNEWTEXTMETRICA = *mut tagNEWTEXTMETRICA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNEWTEXTMETRICW {
    pub tmHeight: LONG,
    pub tmAscent: LONG,
    pub tmDescent: LONG,
    pub tmInternalLeading: LONG,
    pub tmExternalLeading: LONG,
    pub tmAveCharWidth: LONG,
    pub tmMaxCharWidth: LONG,
    pub tmWeight: LONG,
    pub tmOverhang: LONG,
    pub tmDigitizedAspectX: LONG,
    pub tmDigitizedAspectY: LONG,
    pub tmFirstChar: WCHAR,
    pub tmLastChar: WCHAR,
    pub tmDefaultChar: WCHAR,
    pub tmBreakChar: WCHAR,
    pub tmItalic: BYTE,
    pub tmUnderlined: BYTE,
    pub tmStruckOut: BYTE,
    pub tmPitchAndFamily: BYTE,
    pub tmCharSet: BYTE,
    pub ntmFlags: DWORD,
    pub ntmSizeEM: UINT,
    pub ntmCellHeight: UINT,
    pub ntmAvgWidth: UINT,
}
pub type NEWTEXTMETRICW = tagNEWTEXTMETRICW;
pub type PNEWTEXTMETRICW = *mut tagNEWTEXTMETRICW;
pub type NPNEWTEXTMETRICW = *mut tagNEWTEXTMETRICW;
pub type LPNEWTEXTMETRICW = *mut tagNEWTEXTMETRICW;
pub type NEWTEXTMETRIC = NEWTEXTMETRICA;
pub type PNEWTEXTMETRIC = PNEWTEXTMETRICA;
pub type NPNEWTEXTMETRIC = NPNEWTEXTMETRICA;
pub type LPNEWTEXTMETRIC = LPNEWTEXTMETRICA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNEWTEXTMETRICEXA {
    pub ntmTm: NEWTEXTMETRICA,
    pub ntmFontSig: FONTSIGNATURE,
}
pub type NEWTEXTMETRICEXA = tagNEWTEXTMETRICEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNEWTEXTMETRICEXW {
    pub ntmTm: NEWTEXTMETRICW,
    pub ntmFontSig: FONTSIGNATURE,
}
pub type NEWTEXTMETRICEXW = tagNEWTEXTMETRICEXW;
pub type NEWTEXTMETRICEX = NEWTEXTMETRICEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPELARRAY {
    pub paXCount: LONG,
    pub paYCount: LONG,
    pub paXExt: LONG,
    pub paYExt: LONG,
    pub paRGBs: BYTE,
}
pub type PELARRAY = tagPELARRAY;
pub type PPELARRAY = *mut tagPELARRAY;
pub type NPPELARRAY = *mut tagPELARRAY;
pub type LPPELARRAY = *mut tagPELARRAY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLOGBRUSH {
    pub lbStyle: UINT,
    pub lbColor: COLORREF,
    pub lbHatch: ULONG_PTR,
}
pub type LOGBRUSH = tagLOGBRUSH;
pub type PLOGBRUSH = *mut tagLOGBRUSH;
pub type NPLOGBRUSH = *mut tagLOGBRUSH;
pub type LPLOGBRUSH = *mut tagLOGBRUSH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLOGBRUSH32 {
    pub lbStyle: UINT,
    pub lbColor: COLORREF,
    pub lbHatch: ULONG,
}
pub type LOGBRUSH32 = tagLOGBRUSH32;
pub type PLOGBRUSH32 = *mut tagLOGBRUSH32;
pub type NPLOGBRUSH32 = *mut tagLOGBRUSH32;
pub type LPLOGBRUSH32 = *mut tagLOGBRUSH32;
pub type PATTERN = LOGBRUSH;
pub type PPATTERN = *mut PATTERN;
pub type NPPATTERN = *mut PATTERN;
pub type LPPATTERN = *mut PATTERN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLOGPEN {
    pub lopnStyle: UINT,
    pub lopnWidth: POINT,
    pub lopnColor: COLORREF,
}
pub type LOGPEN = tagLOGPEN;
pub type PLOGPEN = *mut tagLOGPEN;
pub type NPLOGPEN = *mut tagLOGPEN;
pub type LPLOGPEN = *mut tagLOGPEN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEXTLOGPEN {
    pub elpPenStyle: DWORD,
    pub elpWidth: DWORD,
    pub elpBrushStyle: UINT,
    pub elpColor: COLORREF,
    pub elpHatch: ULONG_PTR,
    pub elpNumEntries: DWORD,
    pub elpStyleEntry: [DWORD; 1usize],
}
pub type EXTLOGPEN = tagEXTLOGPEN;
pub type PEXTLOGPEN = *mut tagEXTLOGPEN;
pub type NPEXTLOGPEN = *mut tagEXTLOGPEN;
pub type LPEXTLOGPEN = *mut tagEXTLOGPEN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEXTLOGPEN32 {
    pub elpPenStyle: DWORD,
    pub elpWidth: DWORD,
    pub elpBrushStyle: UINT,
    pub elpColor: COLORREF,
    pub elpHatch: ULONG,
    pub elpNumEntries: DWORD,
    pub elpStyleEntry: [DWORD; 1usize],
}
pub type EXTLOGPEN32 = tagEXTLOGPEN32;
pub type PEXTLOGPEN32 = *mut tagEXTLOGPEN32;
pub type NPEXTLOGPEN32 = *mut tagEXTLOGPEN32;
pub type LPEXTLOGPEN32 = *mut tagEXTLOGPEN32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPALETTEENTRY {
    pub peRed: BYTE,
    pub peGreen: BYTE,
    pub peBlue: BYTE,
    pub peFlags: BYTE,
}
pub type PALETTEENTRY = tagPALETTEENTRY;
pub type PPALETTEENTRY = *mut tagPALETTEENTRY;
pub type LPPALETTEENTRY = *mut tagPALETTEENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLOGPALETTE {
    pub palVersion: WORD,
    pub palNumEntries: WORD,
    pub palPalEntry: [PALETTEENTRY; 1usize],
}
pub type LOGPALETTE = tagLOGPALETTE;
pub type PLOGPALETTE = *mut tagLOGPALETTE;
pub type NPLOGPALETTE = *mut tagLOGPALETTE;
pub type LPLOGPALETTE = *mut tagLOGPALETTE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLOGFONTA {
    pub lfHeight: LONG,
    pub lfWidth: LONG,
    pub lfEscapement: LONG,
    pub lfOrientation: LONG,
    pub lfWeight: LONG,
    pub lfItalic: BYTE,
    pub lfUnderline: BYTE,
    pub lfStrikeOut: BYTE,
    pub lfCharSet: BYTE,
    pub lfOutPrecision: BYTE,
    pub lfClipPrecision: BYTE,
    pub lfQuality: BYTE,
    pub lfPitchAndFamily: BYTE,
    pub lfFaceName: [CHAR; 32usize],
}
pub type LOGFONTA = tagLOGFONTA;
pub type PLOGFONTA = *mut tagLOGFONTA;
pub type NPLOGFONTA = *mut tagLOGFONTA;
pub type LPLOGFONTA = *mut tagLOGFONTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLOGFONTW {
    pub lfHeight: LONG,
    pub lfWidth: LONG,
    pub lfEscapement: LONG,
    pub lfOrientation: LONG,
    pub lfWeight: LONG,
    pub lfItalic: BYTE,
    pub lfUnderline: BYTE,
    pub lfStrikeOut: BYTE,
    pub lfCharSet: BYTE,
    pub lfOutPrecision: BYTE,
    pub lfClipPrecision: BYTE,
    pub lfQuality: BYTE,
    pub lfPitchAndFamily: BYTE,
    pub lfFaceName: [WCHAR; 32usize],
}
pub type LOGFONTW = tagLOGFONTW;
pub type PLOGFONTW = *mut tagLOGFONTW;
pub type NPLOGFONTW = *mut tagLOGFONTW;
pub type LPLOGFONTW = *mut tagLOGFONTW;
pub type LOGFONT = LOGFONTA;
pub type PLOGFONT = PLOGFONTA;
pub type NPLOGFONT = NPLOGFONTA;
pub type LPLOGFONT = LPLOGFONTA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagENUMLOGFONTA {
    pub elfLogFont: LOGFONTA,
    pub elfFullName: [BYTE; 64usize],
    pub elfStyle: [BYTE; 32usize],
}
pub type ENUMLOGFONTA = tagENUMLOGFONTA;
pub type LPENUMLOGFONTA = *mut tagENUMLOGFONTA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagENUMLOGFONTW {
    pub elfLogFont: LOGFONTW,
    pub elfFullName: [WCHAR; 64usize],
    pub elfStyle: [WCHAR; 32usize],
}
pub type ENUMLOGFONTW = tagENUMLOGFONTW;
pub type LPENUMLOGFONTW = *mut tagENUMLOGFONTW;
pub type ENUMLOGFONT = ENUMLOGFONTA;
pub type LPENUMLOGFONT = LPENUMLOGFONTA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagENUMLOGFONTEXA {
    pub elfLogFont: LOGFONTA,
    pub elfFullName: [BYTE; 64usize],
    pub elfStyle: [BYTE; 32usize],
    pub elfScript: [BYTE; 32usize],
}
pub type ENUMLOGFONTEXA = tagENUMLOGFONTEXA;
pub type LPENUMLOGFONTEXA = *mut tagENUMLOGFONTEXA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagENUMLOGFONTEXW {
    pub elfLogFont: LOGFONTW,
    pub elfFullName: [WCHAR; 64usize],
    pub elfStyle: [WCHAR; 32usize],
    pub elfScript: [WCHAR; 32usize],
}
pub type ENUMLOGFONTEXW = tagENUMLOGFONTEXW;
pub type LPENUMLOGFONTEXW = *mut tagENUMLOGFONTEXW;
pub type ENUMLOGFONTEX = ENUMLOGFONTEXA;
pub type LPENUMLOGFONTEX = LPENUMLOGFONTEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPANOSE {
    pub bFamilyType: BYTE,
    pub bSerifStyle: BYTE,
    pub bWeight: BYTE,
    pub bProportion: BYTE,
    pub bContrast: BYTE,
    pub bStrokeVariation: BYTE,
    pub bArmStyle: BYTE,
    pub bLetterform: BYTE,
    pub bMidline: BYTE,
    pub bXHeight: BYTE,
}
pub type PANOSE = tagPANOSE;
pub type LPPANOSE = *mut tagPANOSE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagEXTLOGFONTA {
    pub elfLogFont: LOGFONTA,
    pub elfFullName: [BYTE; 64usize],
    pub elfStyle: [BYTE; 32usize],
    pub elfVersion: DWORD,
    pub elfStyleSize: DWORD,
    pub elfMatch: DWORD,
    pub elfReserved: DWORD,
    pub elfVendorId: [BYTE; 4usize],
    pub elfCulture: DWORD,
    pub elfPanose: PANOSE,
}
pub type EXTLOGFONTA = tagEXTLOGFONTA;
pub type PEXTLOGFONTA = *mut tagEXTLOGFONTA;
pub type NPEXTLOGFONTA = *mut tagEXTLOGFONTA;
pub type LPEXTLOGFONTA = *mut tagEXTLOGFONTA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagEXTLOGFONTW {
    pub elfLogFont: LOGFONTW,
    pub elfFullName: [WCHAR; 64usize],
    pub elfStyle: [WCHAR; 32usize],
    pub elfVersion: DWORD,
    pub elfStyleSize: DWORD,
    pub elfMatch: DWORD,
    pub elfReserved: DWORD,
    pub elfVendorId: [BYTE; 4usize],
    pub elfCulture: DWORD,
    pub elfPanose: PANOSE,
}
pub type EXTLOGFONTW = tagEXTLOGFONTW;
pub type PEXTLOGFONTW = *mut tagEXTLOGFONTW;
pub type NPEXTLOGFONTW = *mut tagEXTLOGFONTW;
pub type LPEXTLOGFONTW = *mut tagEXTLOGFONTW;
pub type EXTLOGFONT = EXTLOGFONTA;
pub type PEXTLOGFONT = PEXTLOGFONTA;
pub type NPEXTLOGFONT = NPEXTLOGFONTA;
pub type LPEXTLOGFONT = LPEXTLOGFONTA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _devicemodeA {
    pub dmDeviceName: [BYTE; 32usize],
    pub dmSpecVersion: WORD,
    pub dmDriverVersion: WORD,
    pub dmSize: WORD,
    pub dmDriverExtra: WORD,
    pub dmFields: DWORD,
    pub __bindgen_anon_1: _devicemodeA__bindgen_ty_1,
    pub dmColor: ::std::os::raw::c_short,
    pub dmDuplex: ::std::os::raw::c_short,
    pub dmYResolution: ::std::os::raw::c_short,
    pub dmTTOption: ::std::os::raw::c_short,
    pub dmCollate: ::std::os::raw::c_short,
    pub dmFormName: [BYTE; 32usize],
    pub dmLogPixels: WORD,
    pub dmBitsPerPel: DWORD,
    pub dmPelsWidth: DWORD,
    pub dmPelsHeight: DWORD,
    pub __bindgen_anon_2: _devicemodeA__bindgen_ty_2,
    pub dmDisplayFrequency: DWORD,
    pub dmICMMethod: DWORD,
    pub dmICMIntent: DWORD,
    pub dmMediaType: DWORD,
    pub dmDitherType: DWORD,
    pub dmReserved1: DWORD,
    pub dmReserved2: DWORD,
    pub dmPanningWidth: DWORD,
    pub dmPanningHeight: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _devicemodeA__bindgen_ty_1 {
    pub __bindgen_anon_1: _devicemodeA__bindgen_ty_1__bindgen_ty_1,
    pub __bindgen_anon_2: _devicemodeA__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u32; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _devicemodeA__bindgen_ty_1__bindgen_ty_1 {
    pub dmOrientation: ::std::os::raw::c_short,
    pub dmPaperSize: ::std::os::raw::c_short,
    pub dmPaperLength: ::std::os::raw::c_short,
    pub dmPaperWidth: ::std::os::raw::c_short,
    pub dmScale: ::std::os::raw::c_short,
    pub dmCopies: ::std::os::raw::c_short,
    pub dmDefaultSource: ::std::os::raw::c_short,
    pub dmPrintQuality: ::std::os::raw::c_short,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _devicemodeA__bindgen_ty_1__bindgen_ty_2 {
    pub dmPosition: POINTL,
    pub dmDisplayOrientation: DWORD,
    pub dmDisplayFixedOutput: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _devicemodeA__bindgen_ty_2 {
    pub dmDisplayFlags: DWORD,
    pub dmNup: DWORD,
    _bindgen_union_align: u32,
}
pub type DEVMODEA = _devicemodeA;
pub type PDEVMODEA = *mut _devicemodeA;
pub type NPDEVMODEA = *mut _devicemodeA;
pub type LPDEVMODEA = *mut _devicemodeA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _devicemodeW {
    pub dmDeviceName: [WCHAR; 32usize],
    pub dmSpecVersion: WORD,
    pub dmDriverVersion: WORD,
    pub dmSize: WORD,
    pub dmDriverExtra: WORD,
    pub dmFields: DWORD,
    pub __bindgen_anon_1: _devicemodeW__bindgen_ty_1,
    pub dmColor: ::std::os::raw::c_short,
    pub dmDuplex: ::std::os::raw::c_short,
    pub dmYResolution: ::std::os::raw::c_short,
    pub dmTTOption: ::std::os::raw::c_short,
    pub dmCollate: ::std::os::raw::c_short,
    pub dmFormName: [WCHAR; 32usize],
    pub dmLogPixels: WORD,
    pub dmBitsPerPel: DWORD,
    pub dmPelsWidth: DWORD,
    pub dmPelsHeight: DWORD,
    pub __bindgen_anon_2: _devicemodeW__bindgen_ty_2,
    pub dmDisplayFrequency: DWORD,
    pub dmICMMethod: DWORD,
    pub dmICMIntent: DWORD,
    pub dmMediaType: DWORD,
    pub dmDitherType: DWORD,
    pub dmReserved1: DWORD,
    pub dmReserved2: DWORD,
    pub dmPanningWidth: DWORD,
    pub dmPanningHeight: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _devicemodeW__bindgen_ty_1 {
    pub __bindgen_anon_1: _devicemodeW__bindgen_ty_1__bindgen_ty_1,
    pub __bindgen_anon_2: _devicemodeW__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u32; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _devicemodeW__bindgen_ty_1__bindgen_ty_1 {
    pub dmOrientation: ::std::os::raw::c_short,
    pub dmPaperSize: ::std::os::raw::c_short,
    pub dmPaperLength: ::std::os::raw::c_short,
    pub dmPaperWidth: ::std::os::raw::c_short,
    pub dmScale: ::std::os::raw::c_short,
    pub dmCopies: ::std::os::raw::c_short,
    pub dmDefaultSource: ::std::os::raw::c_short,
    pub dmPrintQuality: ::std::os::raw::c_short,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _devicemodeW__bindgen_ty_1__bindgen_ty_2 {
    pub dmPosition: POINTL,
    pub dmDisplayOrientation: DWORD,
    pub dmDisplayFixedOutput: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _devicemodeW__bindgen_ty_2 {
    pub dmDisplayFlags: DWORD,
    pub dmNup: DWORD,
    _bindgen_union_align: u32,
}
pub type DEVMODEW = _devicemodeW;
pub type PDEVMODEW = *mut _devicemodeW;
pub type NPDEVMODEW = *mut _devicemodeW;
pub type LPDEVMODEW = *mut _devicemodeW;
pub type DEVMODE = DEVMODEA;
pub type PDEVMODE = PDEVMODEA;
pub type NPDEVMODE = NPDEVMODEA;
pub type LPDEVMODE = LPDEVMODEA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISPLAY_DEVICEA {
    pub cb: DWORD,
    pub DeviceName: [CHAR; 32usize],
    pub DeviceString: [CHAR; 128usize],
    pub StateFlags: DWORD,
    pub DeviceID: [CHAR; 128usize],
    pub DeviceKey: [CHAR; 128usize],
}
pub type DISPLAY_DEVICEA = _DISPLAY_DEVICEA;
pub type PDISPLAY_DEVICEA = *mut _DISPLAY_DEVICEA;
pub type LPDISPLAY_DEVICEA = *mut _DISPLAY_DEVICEA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISPLAY_DEVICEW {
    pub cb: DWORD,
    pub DeviceName: [WCHAR; 32usize],
    pub DeviceString: [WCHAR; 128usize],
    pub StateFlags: DWORD,
    pub DeviceID: [WCHAR; 128usize],
    pub DeviceKey: [WCHAR; 128usize],
}
pub type DISPLAY_DEVICEW = _DISPLAY_DEVICEW;
pub type PDISPLAY_DEVICEW = *mut _DISPLAY_DEVICEW;
pub type LPDISPLAY_DEVICEW = *mut _DISPLAY_DEVICEW;
pub type DISPLAY_DEVICE = DISPLAY_DEVICEA;
pub type PDISPLAY_DEVICE = PDISPLAY_DEVICEA;
pub type LPDISPLAY_DEVICE = LPDISPLAY_DEVICEA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RGNDATAHEADER {
    pub dwSize: DWORD,
    pub iType: DWORD,
    pub nCount: DWORD,
    pub nRgnSize: DWORD,
    pub rcBound: RECT,
}
pub type RGNDATAHEADER = _RGNDATAHEADER;
pub type PRGNDATAHEADER = *mut _RGNDATAHEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RGNDATA {
    pub rdh: RGNDATAHEADER,
    pub Buffer: [::std::os::raw::c_char; 1usize],
}
pub type RGNDATA = _RGNDATA;
pub type PRGNDATA = *mut _RGNDATA;
pub type NPRGNDATA = *mut _RGNDATA;
pub type LPRGNDATA = *mut _RGNDATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ABC {
    pub abcA: ::std::os::raw::c_int,
    pub abcB: UINT,
    pub abcC: ::std::os::raw::c_int,
}
pub type ABC = _ABC;
pub type PABC = *mut _ABC;
pub type NPABC = *mut _ABC;
pub type LPABC = *mut _ABC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ABCFLOAT {
    pub abcfA: FLOAT,
    pub abcfB: FLOAT,
    pub abcfC: FLOAT,
}
pub type ABCFLOAT = _ABCFLOAT;
pub type PABCFLOAT = *mut _ABCFLOAT;
pub type NPABCFLOAT = *mut _ABCFLOAT;
pub type LPABCFLOAT = *mut _ABCFLOAT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OUTLINETEXTMETRICA {
    pub otmSize: UINT,
    pub otmTextMetrics: TEXTMETRICA,
    pub otmFiller: BYTE,
    pub otmPanoseNumber: PANOSE,
    pub otmfsSelection: UINT,
    pub otmfsType: UINT,
    pub otmsCharSlopeRise: ::std::os::raw::c_int,
    pub otmsCharSlopeRun: ::std::os::raw::c_int,
    pub otmItalicAngle: ::std::os::raw::c_int,
    pub otmEMSquare: UINT,
    pub otmAscent: ::std::os::raw::c_int,
    pub otmDescent: ::std::os::raw::c_int,
    pub otmLineGap: UINT,
    pub otmsCapEmHeight: UINT,
    pub otmsXHeight: UINT,
    pub otmrcFontBox: RECT,
    pub otmMacAscent: ::std::os::raw::c_int,
    pub otmMacDescent: ::std::os::raw::c_int,
    pub otmMacLineGap: UINT,
    pub otmusMinimumPPEM: UINT,
    pub otmptSubscriptSize: POINT,
    pub otmptSubscriptOffset: POINT,
    pub otmptSuperscriptSize: POINT,
    pub otmptSuperscriptOffset: POINT,
    pub otmsStrikeoutSize: UINT,
    pub otmsStrikeoutPosition: ::std::os::raw::c_int,
    pub otmsUnderscoreSize: ::std::os::raw::c_int,
    pub otmsUnderscorePosition: ::std::os::raw::c_int,
    pub otmpFamilyName: PSTR,
    pub otmpFaceName: PSTR,
    pub otmpStyleName: PSTR,
    pub otmpFullName: PSTR,
}
pub type OUTLINETEXTMETRICA = _OUTLINETEXTMETRICA;
pub type POUTLINETEXTMETRICA = *mut _OUTLINETEXTMETRICA;
pub type NPOUTLINETEXTMETRICA = *mut _OUTLINETEXTMETRICA;
pub type LPOUTLINETEXTMETRICA = *mut _OUTLINETEXTMETRICA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OUTLINETEXTMETRICW {
    pub otmSize: UINT,
    pub otmTextMetrics: TEXTMETRICW,
    pub otmFiller: BYTE,
    pub otmPanoseNumber: PANOSE,
    pub otmfsSelection: UINT,
    pub otmfsType: UINT,
    pub otmsCharSlopeRise: ::std::os::raw::c_int,
    pub otmsCharSlopeRun: ::std::os::raw::c_int,
    pub otmItalicAngle: ::std::os::raw::c_int,
    pub otmEMSquare: UINT,
    pub otmAscent: ::std::os::raw::c_int,
    pub otmDescent: ::std::os::raw::c_int,
    pub otmLineGap: UINT,
    pub otmsCapEmHeight: UINT,
    pub otmsXHeight: UINT,
    pub otmrcFontBox: RECT,
    pub otmMacAscent: ::std::os::raw::c_int,
    pub otmMacDescent: ::std::os::raw::c_int,
    pub otmMacLineGap: UINT,
    pub otmusMinimumPPEM: UINT,
    pub otmptSubscriptSize: POINT,
    pub otmptSubscriptOffset: POINT,
    pub otmptSuperscriptSize: POINT,
    pub otmptSuperscriptOffset: POINT,
    pub otmsStrikeoutSize: UINT,
    pub otmsStrikeoutPosition: ::std::os::raw::c_int,
    pub otmsUnderscoreSize: ::std::os::raw::c_int,
    pub otmsUnderscorePosition: ::std::os::raw::c_int,
    pub otmpFamilyName: PSTR,
    pub otmpFaceName: PSTR,
    pub otmpStyleName: PSTR,
    pub otmpFullName: PSTR,
}
pub type OUTLINETEXTMETRICW = _OUTLINETEXTMETRICW;
pub type POUTLINETEXTMETRICW = *mut _OUTLINETEXTMETRICW;
pub type NPOUTLINETEXTMETRICW = *mut _OUTLINETEXTMETRICW;
pub type LPOUTLINETEXTMETRICW = *mut _OUTLINETEXTMETRICW;
pub type OUTLINETEXTMETRIC = OUTLINETEXTMETRICA;
pub type POUTLINETEXTMETRIC = POUTLINETEXTMETRICA;
pub type NPOUTLINETEXTMETRIC = NPOUTLINETEXTMETRICA;
pub type LPOUTLINETEXTMETRIC = LPOUTLINETEXTMETRICA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOLYTEXTA {
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub n: UINT,
    pub lpstr: LPCSTR,
    pub uiFlags: UINT,
    pub rcl: RECT,
    pub pdx: *mut ::std::os::raw::c_int,
}
pub type POLYTEXTA = tagPOLYTEXTA;
pub type PPOLYTEXTA = *mut tagPOLYTEXTA;
pub type NPPOLYTEXTA = *mut tagPOLYTEXTA;
pub type LPPOLYTEXTA = *mut tagPOLYTEXTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOLYTEXTW {
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub n: UINT,
    pub lpstr: LPCWSTR,
    pub uiFlags: UINT,
    pub rcl: RECT,
    pub pdx: *mut ::std::os::raw::c_int,
}
pub type POLYTEXTW = tagPOLYTEXTW;
pub type PPOLYTEXTW = *mut tagPOLYTEXTW;
pub type NPPOLYTEXTW = *mut tagPOLYTEXTW;
pub type LPPOLYTEXTW = *mut tagPOLYTEXTW;
pub type POLYTEXT = POLYTEXTA;
pub type PPOLYTEXT = PPOLYTEXTA;
pub type NPPOLYTEXT = NPPOLYTEXTA;
pub type LPPOLYTEXT = LPPOLYTEXTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FIXED {
    pub fract: WORD,
    pub value: ::std::os::raw::c_short,
}
pub type FIXED = _FIXED;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MAT2 {
    pub eM11: FIXED,
    pub eM12: FIXED,
    pub eM21: FIXED,
    pub eM22: FIXED,
}
pub type MAT2 = _MAT2;
pub type LPMAT2 = *mut _MAT2;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GLYPHMETRICS {
    pub gmBlackBoxX: UINT,
    pub gmBlackBoxY: UINT,
    pub gmptGlyphOrigin: POINT,
    pub gmCellIncX: ::std::os::raw::c_short,
    pub gmCellIncY: ::std::os::raw::c_short,
}
pub type GLYPHMETRICS = _GLYPHMETRICS;
pub type LPGLYPHMETRICS = *mut _GLYPHMETRICS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOINTFX {
    pub x: FIXED,
    pub y: FIXED,
}
pub type POINTFX = tagPOINTFX;
pub type LPPOINTFX = *mut tagPOINTFX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTTPOLYCURVE {
    pub wType: WORD,
    pub cpfx: WORD,
    pub apfx: [POINTFX; 1usize],
}
pub type TTPOLYCURVE = tagTTPOLYCURVE;
pub type LPTTPOLYCURVE = *mut tagTTPOLYCURVE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTTPOLYGONHEADER {
    pub cb: DWORD,
    pub dwType: DWORD,
    pub pfxStart: POINTFX,
}
pub type TTPOLYGONHEADER = tagTTPOLYGONHEADER;
pub type LPTTPOLYGONHEADER = *mut tagTTPOLYGONHEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagGCP_RESULTSA {
    pub lStructSize: DWORD,
    pub lpOutString: LPSTR,
    pub lpOrder: *mut UINT,
    pub lpDx: *mut ::std::os::raw::c_int,
    pub lpCaretPos: *mut ::std::os::raw::c_int,
    pub lpClass: LPSTR,
    pub lpGlyphs: LPWSTR,
    pub nGlyphs: UINT,
    pub nMaxFit: ::std::os::raw::c_int,
}
pub type GCP_RESULTSA = tagGCP_RESULTSA;
pub type LPGCP_RESULTSA = *mut tagGCP_RESULTSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagGCP_RESULTSW {
    pub lStructSize: DWORD,
    pub lpOutString: LPWSTR,
    pub lpOrder: *mut UINT,
    pub lpDx: *mut ::std::os::raw::c_int,
    pub lpCaretPos: *mut ::std::os::raw::c_int,
    pub lpClass: LPSTR,
    pub lpGlyphs: LPWSTR,
    pub nGlyphs: UINT,
    pub nMaxFit: ::std::os::raw::c_int,
}
pub type GCP_RESULTSW = tagGCP_RESULTSW;
pub type LPGCP_RESULTSW = *mut tagGCP_RESULTSW;
pub type GCP_RESULTS = GCP_RESULTSA;
pub type LPGCP_RESULTS = LPGCP_RESULTSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RASTERIZER_STATUS {
    pub nSize: ::std::os::raw::c_short,
    pub wFlags: ::std::os::raw::c_short,
    pub nLanguageID: ::std::os::raw::c_short,
}
pub type RASTERIZER_STATUS = _RASTERIZER_STATUS;
pub type LPRASTERIZER_STATUS = *mut _RASTERIZER_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPIXELFORMATDESCRIPTOR {
    pub nSize: WORD,
    pub nVersion: WORD,
    pub dwFlags: DWORD,
    pub iPixelType: BYTE,
    pub cColorBits: BYTE,
    pub cRedBits: BYTE,
    pub cRedShift: BYTE,
    pub cGreenBits: BYTE,
    pub cGreenShift: BYTE,
    pub cBlueBits: BYTE,
    pub cBlueShift: BYTE,
    pub cAlphaBits: BYTE,
    pub cAlphaShift: BYTE,
    pub cAccumBits: BYTE,
    pub cAccumRedBits: BYTE,
    pub cAccumGreenBits: BYTE,
    pub cAccumBlueBits: BYTE,
    pub cAccumAlphaBits: BYTE,
    pub cDepthBits: BYTE,
    pub cStencilBits: BYTE,
    pub cAuxBuffers: BYTE,
    pub iLayerType: BYTE,
    pub bReserved: BYTE,
    pub dwLayerMask: DWORD,
    pub dwVisibleMask: DWORD,
    pub dwDamageMask: DWORD,
}
pub type PIXELFORMATDESCRIPTOR = tagPIXELFORMATDESCRIPTOR;
pub type PPIXELFORMATDESCRIPTOR = *mut tagPIXELFORMATDESCRIPTOR;
pub type LPPIXELFORMATDESCRIPTOR = *mut tagPIXELFORMATDESCRIPTOR;
pub type OLDFONTENUMPROCA = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *const LOGFONTA,
        arg2: *const TEXTMETRICA,
        arg3: DWORD,
        arg4: LPARAM,
    ) -> ::std::os::raw::c_int,
>;
pub type OLDFONTENUMPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *const LOGFONTW,
        arg2: *const TEXTMETRICW,
        arg3: DWORD,
        arg4: LPARAM,
    ) -> ::std::os::raw::c_int,
>;
pub type FONTENUMPROCA = OLDFONTENUMPROCA;
pub type FONTENUMPROCW = OLDFONTENUMPROCW;
pub type FONTENUMPROC = FONTENUMPROCA;
pub type GOBJENUMPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: LPVOID, arg2: LPARAM) -> ::std::os::raw::c_int,
>;
pub type LINEDDAPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int, arg3: LPARAM),
>;
extern "C" {
    pub fn AddFontResourceA(arg1: LPCSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn AddFontResourceW(arg1: LPCWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn AnimatePalette(
        hPal: HPALETTE,
        iStartIndex: UINT,
        cEntries: UINT,
        ppe: *const PALETTEENTRY,
    ) -> WINBOOL;
}
extern "C" {
    pub fn Arc(
        hdc: HDC,
        x1: ::std::os::raw::c_int,
        y1: ::std::os::raw::c_int,
        x2: ::std::os::raw::c_int,
        y2: ::std::os::raw::c_int,
        x3: ::std::os::raw::c_int,
        y3: ::std::os::raw::c_int,
        x4: ::std::os::raw::c_int,
        y4: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn BitBlt(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
        hdcSrc: HDC,
        x1: ::std::os::raw::c_int,
        y1: ::std::os::raw::c_int,
        rop: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CancelDC(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn Chord(
        hdc: HDC,
        x1: ::std::os::raw::c_int,
        y1: ::std::os::raw::c_int,
        x2: ::std::os::raw::c_int,
        y2: ::std::os::raw::c_int,
        x3: ::std::os::raw::c_int,
        y3: ::std::os::raw::c_int,
        x4: ::std::os::raw::c_int,
        y4: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ChoosePixelFormat(hdc: HDC, ppfd: *const PIXELFORMATDESCRIPTOR)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CloseMetaFile(hdc: HDC) -> HMETAFILE;
}
extern "C" {
    pub fn CombineRgn(
        hrgnDst: HRGN,
        hrgnSrc1: HRGN,
        hrgnSrc2: HRGN,
        iMode: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CopyMetaFileA(arg1: HMETAFILE, arg2: LPCSTR) -> HMETAFILE;
}
extern "C" {
    pub fn CopyMetaFileW(arg1: HMETAFILE, arg2: LPCWSTR) -> HMETAFILE;
}
extern "C" {
    pub fn CreateBitmap(
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
        nPlanes: UINT,
        nBitCount: UINT,
        lpBits: *const ::std::os::raw::c_void,
    ) -> HBITMAP;
}
extern "C" {
    pub fn CreateBitmapIndirect(pbm: *const BITMAP) -> HBITMAP;
}
extern "C" {
    pub fn CreateBrushIndirect(plbrush: *const LOGBRUSH) -> HBRUSH;
}
extern "C" {
    pub fn CreateCompatibleBitmap(
        hdc: HDC,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
    ) -> HBITMAP;
}
extern "C" {
    pub fn CreateDiscardableBitmap(
        hdc: HDC,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
    ) -> HBITMAP;
}
extern "C" {
    pub fn CreateCompatibleDC(hdc: HDC) -> HDC;
}
extern "C" {
    pub fn CreateDCA(
        pwszDriver: LPCSTR,
        pwszDevice: LPCSTR,
        pszPort: LPCSTR,
        pdm: *const DEVMODEA,
    ) -> HDC;
}
extern "C" {
    pub fn CreateDCW(
        pwszDriver: LPCWSTR,
        pwszDevice: LPCWSTR,
        pszPort: LPCWSTR,
        pdm: *const DEVMODEW,
    ) -> HDC;
}
extern "C" {
    pub fn CreateDIBitmap(
        hdc: HDC,
        pbmih: *const BITMAPINFOHEADER,
        flInit: DWORD,
        pjBits: *const ::std::os::raw::c_void,
        pbmi: *const BITMAPINFO,
        iUsage: UINT,
    ) -> HBITMAP;
}
extern "C" {
    pub fn CreateDIBPatternBrush(h: HGLOBAL, iUsage: UINT) -> HBRUSH;
}
extern "C" {
    pub fn CreateDIBPatternBrushPt(
        lpPackedDIB: *const ::std::os::raw::c_void,
        iUsage: UINT,
    ) -> HBRUSH;
}
extern "C" {
    pub fn CreateEllipticRgn(
        x1: ::std::os::raw::c_int,
        y1: ::std::os::raw::c_int,
        x2: ::std::os::raw::c_int,
        y2: ::std::os::raw::c_int,
    ) -> HRGN;
}
extern "C" {
    pub fn CreateEllipticRgnIndirect(lprect: *const RECT) -> HRGN;
}
extern "C" {
    pub fn CreateFontIndirectA(lplf: *const LOGFONTA) -> HFONT;
}
extern "C" {
    pub fn CreateFontIndirectW(lplf: *const LOGFONTW) -> HFONT;
}
extern "C" {
    pub fn CreateFontA(
        cHeight: ::std::os::raw::c_int,
        cWidth: ::std::os::raw::c_int,
        cEscapement: ::std::os::raw::c_int,
        cOrientation: ::std::os::raw::c_int,
        cWeight: ::std::os::raw::c_int,
        bItalic: DWORD,
        bUnderline: DWORD,
        bStrikeOut: DWORD,
        iCharSet: DWORD,
        iOutPrecision: DWORD,
        iClipPrecision: DWORD,
        iQuality: DWORD,
        iPitchAndFamily: DWORD,
        pszFaceName: LPCSTR,
    ) -> HFONT;
}
extern "C" {
    pub fn CreateFontW(
        cHeight: ::std::os::raw::c_int,
        cWidth: ::std::os::raw::c_int,
        cEscapement: ::std::os::raw::c_int,
        cOrientation: ::std::os::raw::c_int,
        cWeight: ::std::os::raw::c_int,
        bItalic: DWORD,
        bUnderline: DWORD,
        bStrikeOut: DWORD,
        iCharSet: DWORD,
        iOutPrecision: DWORD,
        iClipPrecision: DWORD,
        iQuality: DWORD,
        iPitchAndFamily: DWORD,
        pszFaceName: LPCWSTR,
    ) -> HFONT;
}
extern "C" {
    pub fn CreateHatchBrush(iHatch: ::std::os::raw::c_int, color: COLORREF) -> HBRUSH;
}
extern "C" {
    pub fn CreateICA(
        pszDriver: LPCSTR,
        pszDevice: LPCSTR,
        pszPort: LPCSTR,
        pdm: *const DEVMODEA,
    ) -> HDC;
}
extern "C" {
    pub fn CreateICW(
        pszDriver: LPCWSTR,
        pszDevice: LPCWSTR,
        pszPort: LPCWSTR,
        pdm: *const DEVMODEW,
    ) -> HDC;
}
extern "C" {
    pub fn CreateMetaFileA(pszFile: LPCSTR) -> HDC;
}
extern "C" {
    pub fn CreateMetaFileW(pszFile: LPCWSTR) -> HDC;
}
extern "C" {
    pub fn CreatePalette(plpal: *const LOGPALETTE) -> HPALETTE;
}
extern "C" {
    pub fn CreatePen(
        iStyle: ::std::os::raw::c_int,
        cWidth: ::std::os::raw::c_int,
        color: COLORREF,
    ) -> HPEN;
}
extern "C" {
    pub fn CreatePenIndirect(plpen: *const LOGPEN) -> HPEN;
}
extern "C" {
    pub fn CreatePolyPolygonRgn(
        pptl: *const POINT,
        pc: *const INT,
        cPoly: ::std::os::raw::c_int,
        iMode: ::std::os::raw::c_int,
    ) -> HRGN;
}
extern "C" {
    pub fn CreatePatternBrush(hbm: HBITMAP) -> HBRUSH;
}
extern "C" {
    pub fn CreateRectRgn(
        x1: ::std::os::raw::c_int,
        y1: ::std::os::raw::c_int,
        x2: ::std::os::raw::c_int,
        y2: ::std::os::raw::c_int,
    ) -> HRGN;
}
extern "C" {
    pub fn CreateRectRgnIndirect(lprect: *const RECT) -> HRGN;
}
extern "C" {
    pub fn CreateRoundRectRgn(
        x1: ::std::os::raw::c_int,
        y1: ::std::os::raw::c_int,
        x2: ::std::os::raw::c_int,
        y2: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> HRGN;
}
extern "C" {
    pub fn CreateScalableFontResourceA(
        fdwHidden: DWORD,
        lpszFont: LPCSTR,
        lpszFile: LPCSTR,
        lpszPath: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateScalableFontResourceW(
        fdwHidden: DWORD,
        lpszFont: LPCWSTR,
        lpszFile: LPCWSTR,
        lpszPath: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateSolidBrush(color: COLORREF) -> HBRUSH;
}
extern "C" {
    pub fn DeleteDC(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn DeleteMetaFile(hmf: HMETAFILE) -> WINBOOL;
}
extern "C" {
    pub fn DeleteObject(ho: HGDIOBJ) -> WINBOOL;
}
extern "C" {
    pub fn DescribePixelFormat(
        hdc: HDC,
        iPixelFormat: ::std::os::raw::c_int,
        nBytes: UINT,
        ppfd: LPPIXELFORMATDESCRIPTOR,
    ) -> ::std::os::raw::c_int;
}
pub type LPFNDEVMODE = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: HWND,
        arg2: HMODULE,
        arg3: LPDEVMODE,
        arg4: LPSTR,
        arg5: LPSTR,
        arg6: LPDEVMODE,
        arg7: LPSTR,
        arg8: UINT,
    ) -> UINT,
>;
pub type LPFNDEVCAPS = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: LPSTR,
        arg2: LPSTR,
        arg3: UINT,
        arg4: LPSTR,
        arg5: LPDEVMODE,
    ) -> DWORD,
>;
extern "C" {
    pub fn DeviceCapabilitiesA(
        pDevice: LPCSTR,
        pPort: LPCSTR,
        fwCapability: WORD,
        pOutput: LPSTR,
        pDevMode: *const DEVMODEA,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn DeviceCapabilitiesW(
        pDevice: LPCWSTR,
        pPort: LPCWSTR,
        fwCapability: WORD,
        pOutput: LPWSTR,
        pDevMode: *const DEVMODEW,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn DrawEscape(
        hdc: HDC,
        iEscape: ::std::os::raw::c_int,
        cjIn: ::std::os::raw::c_int,
        lpIn: LPCSTR,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn Ellipse(
        hdc: HDC,
        left: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        right: ::std::os::raw::c_int,
        bottom: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumFontFamiliesExA(
        hdc: HDC,
        lpLogfont: LPLOGFONTA,
        lpProc: FONTENUMPROCA,
        lParam: LPARAM,
        dwFlags: DWORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumFontFamiliesExW(
        hdc: HDC,
        lpLogfont: LPLOGFONTW,
        lpProc: FONTENUMPROCW,
        lParam: LPARAM,
        dwFlags: DWORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumFontFamiliesA(
        hdc: HDC,
        lpLogfont: LPCSTR,
        lpProc: FONTENUMPROCA,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumFontFamiliesW(
        hdc: HDC,
        lpLogfont: LPCWSTR,
        lpProc: FONTENUMPROCW,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumFontsA(
        hdc: HDC,
        lpLogfont: LPCSTR,
        lpProc: FONTENUMPROCA,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumFontsW(
        hdc: HDC,
        lpLogfont: LPCWSTR,
        lpProc: FONTENUMPROCW,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumObjects(
        hdc: HDC,
        nType: ::std::os::raw::c_int,
        lpFunc: GOBJENUMPROC,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EqualRgn(hrgn1: HRGN, hrgn2: HRGN) -> WINBOOL;
}
extern "C" {
    pub fn Escape(
        hdc: HDC,
        iEscape: ::std::os::raw::c_int,
        cjIn: ::std::os::raw::c_int,
        pvIn: LPCSTR,
        pvOut: LPVOID,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ExtEscape(
        hdc: HDC,
        iEscape: ::std::os::raw::c_int,
        cjInput: ::std::os::raw::c_int,
        lpInData: LPCSTR,
        cjOutput: ::std::os::raw::c_int,
        lpOutData: LPSTR,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ExcludeClipRect(
        hdc: HDC,
        left: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        right: ::std::os::raw::c_int,
        bottom: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ExtCreateRegion(lpx: *const XFORM, nCount: DWORD, lpData: *const RGNDATA) -> HRGN;
}
extern "C" {
    pub fn ExtFloodFill(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        color: COLORREF,
        type_: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FillRgn(hdc: HDC, hrgn: HRGN, hbr: HBRUSH) -> WINBOOL;
}
extern "C" {
    pub fn FloodFill(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        color: COLORREF,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FrameRgn(
        hdc: HDC,
        hrgn: HRGN,
        hbr: HBRUSH,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetROP2(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetAspectRatioFilterEx(hdc: HDC, lpsize: LPSIZE) -> WINBOOL;
}
extern "C" {
    pub fn GetBkColor(hdc: HDC) -> COLORREF;
}
extern "C" {
    pub fn GetDCBrushColor(hdc: HDC) -> COLORREF;
}
extern "C" {
    pub fn GetDCPenColor(hdc: HDC) -> COLORREF;
}
extern "C" {
    pub fn GetBkMode(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetBitmapBits(hbit: HBITMAP, cb: LONG, lpvBits: LPVOID) -> LONG;
}
extern "C" {
    pub fn GetBitmapDimensionEx(hbit: HBITMAP, lpsize: LPSIZE) -> WINBOOL;
}
extern "C" {
    pub fn GetBoundsRect(hdc: HDC, lprect: LPRECT, flags: UINT) -> UINT;
}
extern "C" {
    pub fn GetBrushOrgEx(hdc: HDC, lppt: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn GetCharWidthA(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> WINBOOL;
}
extern "C" {
    pub fn GetCharWidthW(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> WINBOOL;
}
extern "C" {
    pub fn GetCharWidth32A(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> WINBOOL;
}
extern "C" {
    pub fn GetCharWidth32W(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> WINBOOL;
}
extern "C" {
    pub fn GetCharWidthFloatA(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT) -> WINBOOL;
}
extern "C" {
    pub fn GetCharWidthFloatW(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT) -> WINBOOL;
}
extern "C" {
    pub fn GetCharABCWidthsA(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC) -> WINBOOL;
}
extern "C" {
    pub fn GetCharABCWidthsW(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC) -> WINBOOL;
}
extern "C" {
    pub fn GetCharABCWidthsFloatA(
        hdc: HDC,
        iFirst: UINT,
        iLast: UINT,
        lpABC: LPABCFLOAT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetCharABCWidthsFloatW(
        hdc: HDC,
        iFirst: UINT,
        iLast: UINT,
        lpABC: LPABCFLOAT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetClipBox(hdc: HDC, lprect: LPRECT) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetClipRgn(hdc: HDC, hrgn: HRGN) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMetaRgn(hdc: HDC, hrgn: HRGN) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetCurrentObject(hdc: HDC, type_: UINT) -> HGDIOBJ;
}
extern "C" {
    pub fn GetCurrentPositionEx(hdc: HDC, lppt: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn GetDeviceCaps(hdc: HDC, index: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetDIBits(
        hdc: HDC,
        hbm: HBITMAP,
        start: UINT,
        cLines: UINT,
        lpvBits: LPVOID,
        lpbmi: LPBITMAPINFO,
        usage: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetFontData(
        hdc: HDC,
        dwTable: DWORD,
        dwOffset: DWORD,
        pvBuffer: PVOID,
        cjBuffer: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetGlyphOutlineA(
        hdc: HDC,
        uChar: UINT,
        fuFormat: UINT,
        lpgm: LPGLYPHMETRICS,
        cjBuffer: DWORD,
        pvBuffer: LPVOID,
        lpmat2: *const MAT2,
    ) -> DWORD;
}
extern "C" {
    pub fn GetGlyphOutlineW(
        hdc: HDC,
        uChar: UINT,
        fuFormat: UINT,
        lpgm: LPGLYPHMETRICS,
        cjBuffer: DWORD,
        pvBuffer: LPVOID,
        lpmat2: *const MAT2,
    ) -> DWORD;
}
extern "C" {
    pub fn GetGraphicsMode(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMapMode(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMetaFileBitsEx(hMF: HMETAFILE, cbBuffer: UINT, lpData: LPVOID) -> UINT;
}
extern "C" {
    pub fn GetMetaFileA(lpName: LPCSTR) -> HMETAFILE;
}
extern "C" {
    pub fn GetMetaFileW(lpName: LPCWSTR) -> HMETAFILE;
}
extern "C" {
    pub fn GetNearestColor(hdc: HDC, color: COLORREF) -> COLORREF;
}
extern "C" {
    pub fn GetNearestPaletteIndex(h: HPALETTE, color: COLORREF) -> UINT;
}
extern "C" {
    pub fn GetObjectType(h: HGDIOBJ) -> DWORD;
}
extern "C" {
    pub fn GetOutlineTextMetricsA(hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICA) -> UINT;
}
extern "C" {
    pub fn GetOutlineTextMetricsW(hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICW) -> UINT;
}
extern "C" {
    pub fn GetPaletteEntries(
        hpal: HPALETTE,
        iStart: UINT,
        cEntries: UINT,
        pPalEntries: LPPALETTEENTRY,
    ) -> UINT;
}
extern "C" {
    pub fn GetPixel(hdc: HDC, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) -> COLORREF;
}
extern "C" {
    pub fn GetPixelFormat(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetPolyFillMode(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetRasterizerCaps(lpraststat: LPRASTERIZER_STATUS, cjBytes: UINT) -> WINBOOL;
}
extern "C" {
    pub fn GetRandomRgn(hdc: HDC, hrgn: HRGN, i: INT) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetRegionData(hrgn: HRGN, nCount: DWORD, lpRgnData: LPRGNDATA) -> DWORD;
}
extern "C" {
    pub fn GetRgnBox(hrgn: HRGN, lprc: LPRECT) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetStockObject(i: ::std::os::raw::c_int) -> HGDIOBJ;
}
extern "C" {
    pub fn GetStretchBltMode(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetSystemPaletteEntries(
        hdc: HDC,
        iStart: UINT,
        cEntries: UINT,
        pPalEntries: LPPALETTEENTRY,
    ) -> UINT;
}
extern "C" {
    pub fn GetSystemPaletteUse(hdc: HDC) -> UINT;
}
extern "C" {
    pub fn GetTextCharacterExtra(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTextAlign(hdc: HDC) -> UINT;
}
extern "C" {
    pub fn GetTextColor(hdc: HDC) -> COLORREF;
}
extern "C" {
    pub fn GetTextExtentPointA(
        hdc: HDC,
        lpString: LPCSTR,
        c: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetTextExtentPointW(
        hdc: HDC,
        lpString: LPCWSTR,
        c: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetTextExtentPoint32A(
        hdc: HDC,
        lpString: LPCSTR,
        c: ::std::os::raw::c_int,
        psizl: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetTextExtentPoint32W(
        hdc: HDC,
        lpString: LPCWSTR,
        c: ::std::os::raw::c_int,
        psizl: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetTextExtentExPointA(
        hdc: HDC,
        lpszString: LPCSTR,
        cchString: ::std::os::raw::c_int,
        nMaxExtent: ::std::os::raw::c_int,
        lpnFit: LPINT,
        lpnDx: LPINT,
        lpSize: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetTextExtentExPointW(
        hdc: HDC,
        lpszString: LPCWSTR,
        cchString: ::std::os::raw::c_int,
        nMaxExtent: ::std::os::raw::c_int,
        lpnFit: LPINT,
        lpnDx: LPINT,
        lpSize: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetTextCharset(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTextCharsetInfo(
        hdc: HDC,
        lpSig: LPFONTSIGNATURE,
        dwFlags: DWORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn TranslateCharsetInfo(lpSrc: *mut DWORD, lpCs: LPCHARSETINFO, dwFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetFontLanguageInfo(hdc: HDC) -> DWORD;
}
extern "C" {
    pub fn GetCharacterPlacementA(
        hdc: HDC,
        lpString: LPCSTR,
        nCount: ::std::os::raw::c_int,
        nMexExtent: ::std::os::raw::c_int,
        lpResults: LPGCP_RESULTSA,
        dwFlags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetCharacterPlacementW(
        hdc: HDC,
        lpString: LPCWSTR,
        nCount: ::std::os::raw::c_int,
        nMexExtent: ::std::os::raw::c_int,
        lpResults: LPGCP_RESULTSW,
        dwFlags: DWORD,
    ) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagWCRANGE {
    pub wcLow: WCHAR,
    pub cGlyphs: USHORT,
}
pub type WCRANGE = tagWCRANGE;
pub type PWCRANGE = *mut tagWCRANGE;
pub type LPWCRANGE = *mut tagWCRANGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagGLYPHSET {
    pub cbThis: DWORD,
    pub flAccel: DWORD,
    pub cGlyphsSupported: DWORD,
    pub cRanges: DWORD,
    pub ranges: [WCRANGE; 1usize],
}
pub type GLYPHSET = tagGLYPHSET;
pub type PGLYPHSET = *mut tagGLYPHSET;
pub type LPGLYPHSET = *mut tagGLYPHSET;
extern "C" {
    pub fn GetFontUnicodeRanges(hdc: HDC, lpgs: LPGLYPHSET) -> DWORD;
}
extern "C" {
    pub fn GetGlyphIndicesA(
        hdc: HDC,
        lpstr: LPCSTR,
        c: ::std::os::raw::c_int,
        pgi: LPWORD,
        fl: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetGlyphIndicesW(
        hdc: HDC,
        lpstr: LPCWSTR,
        c: ::std::os::raw::c_int,
        pgi: LPWORD,
        fl: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetTextExtentPointI(
        hdc: HDC,
        pgiIn: LPWORD,
        cgi: ::std::os::raw::c_int,
        psize: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetTextExtentExPointI(
        hdc: HDC,
        lpwszString: LPWORD,
        cwchString: ::std::os::raw::c_int,
        nMaxExtent: ::std::os::raw::c_int,
        lpnFit: LPINT,
        lpnDx: LPINT,
        lpSize: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetCharWidthI(
        hdc: HDC,
        giFirst: UINT,
        cgi: UINT,
        pgi: LPWORD,
        piWidths: LPINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetCharABCWidthsI(
        hdc: HDC,
        giFirst: UINT,
        cgi: UINT,
        pgi: LPWORD,
        pabc: LPABC,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDESIGNVECTOR {
    pub dvReserved: DWORD,
    pub dvNumAxes: DWORD,
    pub dvValues: [LONG; 16usize],
}
pub type DESIGNVECTOR = tagDESIGNVECTOR;
pub type PDESIGNVECTOR = *mut tagDESIGNVECTOR;
pub type LPDESIGNVECTOR = *mut tagDESIGNVECTOR;
extern "C" {
    pub fn AddFontResourceExA(name: LPCSTR, fl: DWORD, res: PVOID) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn AddFontResourceExW(name: LPCWSTR, fl: DWORD, res: PVOID) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn RemoveFontResourceExA(name: LPCSTR, fl: DWORD, pdv: PVOID) -> WINBOOL;
}
extern "C" {
    pub fn RemoveFontResourceExW(name: LPCWSTR, fl: DWORD, pdv: PVOID) -> WINBOOL;
}
extern "C" {
    pub fn AddFontMemResourceEx(
        pFileView: PVOID,
        cjSize: DWORD,
        pvResrved: PVOID,
        pNumFonts: *mut DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn RemoveFontMemResourceEx(h: HANDLE) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagAXISINFOA {
    pub axMinValue: LONG,
    pub axMaxValue: LONG,
    pub axAxisName: [BYTE; 16usize],
}
pub type AXISINFOA = tagAXISINFOA;
pub type PAXISINFOA = *mut tagAXISINFOA;
pub type LPAXISINFOA = *mut tagAXISINFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagAXISINFOW {
    pub axMinValue: LONG,
    pub axMaxValue: LONG,
    pub axAxisName: [WCHAR; 16usize],
}
pub type AXISINFOW = tagAXISINFOW;
pub type PAXISINFOW = *mut tagAXISINFOW;
pub type LPAXISINFOW = *mut tagAXISINFOW;
pub type AXISINFO = AXISINFOA;
pub type PAXISINFO = PAXISINFOA;
pub type LPAXISINFO = LPAXISINFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagAXESLISTA {
    pub axlReserved: DWORD,
    pub axlNumAxes: DWORD,
    pub axlAxisInfo: [AXISINFOA; 16usize],
}
pub type AXESLISTA = tagAXESLISTA;
pub type PAXESLISTA = *mut tagAXESLISTA;
pub type LPAXESLISTA = *mut tagAXESLISTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagAXESLISTW {
    pub axlReserved: DWORD,
    pub axlNumAxes: DWORD,
    pub axlAxisInfo: [AXISINFOW; 16usize],
}
pub type AXESLISTW = tagAXESLISTW;
pub type PAXESLISTW = *mut tagAXESLISTW;
pub type LPAXESLISTW = *mut tagAXESLISTW;
pub type AXESLIST = AXESLISTA;
pub type PAXESLIST = PAXESLISTA;
pub type LPAXESLIST = LPAXESLISTA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagENUMLOGFONTEXDVA {
    pub elfEnumLogfontEx: ENUMLOGFONTEXA,
    pub elfDesignVector: DESIGNVECTOR,
}
pub type ENUMLOGFONTEXDVA = tagENUMLOGFONTEXDVA;
pub type PENUMLOGFONTEXDVA = *mut tagENUMLOGFONTEXDVA;
pub type LPENUMLOGFONTEXDVA = *mut tagENUMLOGFONTEXDVA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagENUMLOGFONTEXDVW {
    pub elfEnumLogfontEx: ENUMLOGFONTEXW,
    pub elfDesignVector: DESIGNVECTOR,
}
pub type ENUMLOGFONTEXDVW = tagENUMLOGFONTEXDVW;
pub type PENUMLOGFONTEXDVW = *mut tagENUMLOGFONTEXDVW;
pub type LPENUMLOGFONTEXDVW = *mut tagENUMLOGFONTEXDVW;
pub type ENUMLOGFONTEXDV = ENUMLOGFONTEXDVA;
pub type PENUMLOGFONTEXDV = PENUMLOGFONTEXDVA;
pub type LPENUMLOGFONTEXDV = LPENUMLOGFONTEXDVA;
extern "C" {
    pub fn CreateFontIndirectExA(arg1: *const ENUMLOGFONTEXDVA) -> HFONT;
}
extern "C" {
    pub fn CreateFontIndirectExW(arg1: *const ENUMLOGFONTEXDVW) -> HFONT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagENUMTEXTMETRICA {
    pub etmNewTextMetricEx: NEWTEXTMETRICEXA,
    pub etmAxesList: AXESLISTA,
}
pub type ENUMTEXTMETRICA = tagENUMTEXTMETRICA;
pub type PENUMTEXTMETRICA = *mut tagENUMTEXTMETRICA;
pub type LPENUMTEXTMETRICA = *mut tagENUMTEXTMETRICA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagENUMTEXTMETRICW {
    pub etmNewTextMetricEx: NEWTEXTMETRICEXW,
    pub etmAxesList: AXESLISTW,
}
pub type ENUMTEXTMETRICW = tagENUMTEXTMETRICW;
pub type PENUMTEXTMETRICW = *mut tagENUMTEXTMETRICW;
pub type LPENUMTEXTMETRICW = *mut tagENUMTEXTMETRICW;
pub type ENUMTEXTMETRIC = ENUMTEXTMETRICA;
pub type PENUMTEXTMETRIC = PENUMTEXTMETRICA;
pub type LPENUMTEXTMETRIC = LPENUMTEXTMETRICA;
extern "C" {
    pub fn GetViewportExtEx(hdc: HDC, lpsize: LPSIZE) -> WINBOOL;
}
extern "C" {
    pub fn GetViewportOrgEx(hdc: HDC, lppoint: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn GetWindowExtEx(hdc: HDC, lpsize: LPSIZE) -> WINBOOL;
}
extern "C" {
    pub fn GetWindowOrgEx(hdc: HDC, lppoint: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn IntersectClipRect(
        hdc: HDC,
        left: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        right: ::std::os::raw::c_int,
        bottom: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn InvertRgn(hdc: HDC, hrgn: HRGN) -> WINBOOL;
}
extern "C" {
    pub fn LineDDA(
        xStart: ::std::os::raw::c_int,
        yStart: ::std::os::raw::c_int,
        xEnd: ::std::os::raw::c_int,
        yEnd: ::std::os::raw::c_int,
        lpProc: LINEDDAPROC,
        data: LPARAM,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LineTo(hdc: HDC, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn MaskBlt(
        hdcDest: HDC,
        xDest: ::std::os::raw::c_int,
        yDest: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        hdcSrc: HDC,
        xSrc: ::std::os::raw::c_int,
        ySrc: ::std::os::raw::c_int,
        hbmMask: HBITMAP,
        xMask: ::std::os::raw::c_int,
        yMask: ::std::os::raw::c_int,
        rop: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PlgBlt(
        hdcDest: HDC,
        lpPoint: *const POINT,
        hdcSrc: HDC,
        xSrc: ::std::os::raw::c_int,
        ySrc: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        hbmMask: HBITMAP,
        xMask: ::std::os::raw::c_int,
        yMask: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn OffsetClipRgn(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn OffsetRgn(
        hrgn: HRGN,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn PatBlt(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        rop: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn Pie(
        hdc: HDC,
        left: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        right: ::std::os::raw::c_int,
        bottom: ::std::os::raw::c_int,
        xr1: ::std::os::raw::c_int,
        yr1: ::std::os::raw::c_int,
        xr2: ::std::os::raw::c_int,
        yr2: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PlayMetaFile(hdc: HDC, hmf: HMETAFILE) -> WINBOOL;
}
extern "C" {
    pub fn PaintRgn(hdc: HDC, hrgn: HRGN) -> WINBOOL;
}
extern "C" {
    pub fn PolyPolygon(
        hdc: HDC,
        apt: *const POINT,
        asz: *const INT,
        csz: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PtInRegion(hrgn: HRGN, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn PtVisible(hdc: HDC, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn RectInRegion(hrgn: HRGN, lprect: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn RectVisible(hdc: HDC, lprect: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn Rectangle(
        hdc: HDC,
        left: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        right: ::std::os::raw::c_int,
        bottom: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn RestoreDC(hdc: HDC, nSavedDC: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn ResetDCA(hdc: HDC, lpdm: *const DEVMODEA) -> HDC;
}
extern "C" {
    pub fn ResetDCW(hdc: HDC, lpdm: *const DEVMODEW) -> HDC;
}
extern "C" {
    pub fn RealizePalette(hdc: HDC) -> UINT;
}
extern "C" {
    pub fn RemoveFontResourceA(lpFileName: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn RemoveFontResourceW(lpFileName: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn RoundRect(
        hdc: HDC,
        left: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        right: ::std::os::raw::c_int,
        bottom: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ResizePalette(hpal: HPALETTE, n: UINT) -> WINBOOL;
}
extern "C" {
    pub fn SaveDC(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SelectClipRgn(hdc: HDC, hrgn: HRGN) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ExtSelectClipRgn(
        hdc: HDC,
        hrgn: HRGN,
        mode: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetMetaRgn(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SelectObject(hdc: HDC, h: HGDIOBJ) -> HGDIOBJ;
}
extern "C" {
    pub fn SelectPalette(hdc: HDC, hPal: HPALETTE, bForceBkgd: WINBOOL) -> HPALETTE;
}
extern "C" {
    pub fn SetBkColor(hdc: HDC, color: COLORREF) -> COLORREF;
}
extern "C" {
    pub fn SetDCBrushColor(hdc: HDC, color: COLORREF) -> COLORREF;
}
extern "C" {
    pub fn SetDCPenColor(hdc: HDC, color: COLORREF) -> COLORREF;
}
extern "C" {
    pub fn SetBkMode(hdc: HDC, mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetBitmapBits(hbm: HBITMAP, cb: DWORD, pvBits: *const ::std::os::raw::c_void) -> LONG;
}
extern "C" {
    pub fn SetBoundsRect(hdc: HDC, lprect: *const RECT, flags: UINT) -> UINT;
}
extern "C" {
    pub fn SetDIBits(
        hdc: HDC,
        hbm: HBITMAP,
        start: UINT,
        cLines: UINT,
        lpBits: *const ::std::os::raw::c_void,
        lpbmi: *const BITMAPINFO,
        ColorUse: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetDIBitsToDevice(
        hdc: HDC,
        xDest: ::std::os::raw::c_int,
        yDest: ::std::os::raw::c_int,
        w: DWORD,
        h: DWORD,
        xSrc: ::std::os::raw::c_int,
        ySrc: ::std::os::raw::c_int,
        StartScan: UINT,
        cLines: UINT,
        lpvBits: *const ::std::os::raw::c_void,
        lpbmi: *const BITMAPINFO,
        ColorUse: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetMapperFlags(hdc: HDC, flags: DWORD) -> DWORD;
}
extern "C" {
    pub fn SetGraphicsMode(hdc: HDC, iMode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetMapMode(hdc: HDC, iMode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetLayout(hdc: HDC, l: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetLayout(hdc: HDC) -> DWORD;
}
extern "C" {
    pub fn SetMetaFileBitsEx(cbBuffer: UINT, lpData: *const BYTE) -> HMETAFILE;
}
extern "C" {
    pub fn SetPaletteEntries(
        hpal: HPALETTE,
        iStart: UINT,
        cEntries: UINT,
        pPalEntries: *const PALETTEENTRY,
    ) -> UINT;
}
extern "C" {
    pub fn SetPixel(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        color: COLORREF,
    ) -> COLORREF;
}
extern "C" {
    pub fn SetPixelV(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        color: COLORREF,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetPixelFormat(
        hdc: HDC,
        format: ::std::os::raw::c_int,
        ppfd: *const PIXELFORMATDESCRIPTOR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetPolyFillMode(hdc: HDC, mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn StretchBlt(
        hdcDest: HDC,
        xDest: ::std::os::raw::c_int,
        yDest: ::std::os::raw::c_int,
        wDest: ::std::os::raw::c_int,
        hDest: ::std::os::raw::c_int,
        hdcSrc: HDC,
        xSrc: ::std::os::raw::c_int,
        ySrc: ::std::os::raw::c_int,
        wSrc: ::std::os::raw::c_int,
        hSrc: ::std::os::raw::c_int,
        rop: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetRectRgn(
        hrgn: HRGN,
        left: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        right: ::std::os::raw::c_int,
        bottom: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn StretchDIBits(
        hdc: HDC,
        xDest: ::std::os::raw::c_int,
        yDest: ::std::os::raw::c_int,
        DestWidth: ::std::os::raw::c_int,
        DestHeight: ::std::os::raw::c_int,
        xSrc: ::std::os::raw::c_int,
        ySrc: ::std::os::raw::c_int,
        SrcWidth: ::std::os::raw::c_int,
        SrcHeight: ::std::os::raw::c_int,
        lpBits: *const ::std::os::raw::c_void,
        lpbmi: *const BITMAPINFO,
        iUsage: UINT,
        rop: DWORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetROP2(hdc: HDC, rop2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetStretchBltMode(hdc: HDC, mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetSystemPaletteUse(hdc: HDC, use_: UINT) -> UINT;
}
extern "C" {
    pub fn SetTextCharacterExtra(hdc: HDC, extra: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetTextColor(hdc: HDC, color: COLORREF) -> COLORREF;
}
extern "C" {
    pub fn SetTextAlign(hdc: HDC, align: UINT) -> UINT;
}
extern "C" {
    pub fn SetTextJustification(
        hdc: HDC,
        extra: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn UpdateColors(hdc: HDC) -> WINBOOL;
}
pub type COLOR16 = USHORT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRIVERTEX {
    pub x: LONG,
    pub y: LONG,
    pub Red: COLOR16,
    pub Green: COLOR16,
    pub Blue: COLOR16,
    pub Alpha: COLOR16,
}
pub type TRIVERTEX = _TRIVERTEX;
pub type PTRIVERTEX = *mut _TRIVERTEX;
pub type LPTRIVERTEX = *mut _TRIVERTEX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GRADIENT_TRIANGLE {
    pub Vertex1: ULONG,
    pub Vertex2: ULONG,
    pub Vertex3: ULONG,
}
pub type GRADIENT_TRIANGLE = _GRADIENT_TRIANGLE;
pub type PGRADIENT_TRIANGLE = *mut _GRADIENT_TRIANGLE;
pub type LPGRADIENT_TRIANGLE = *mut _GRADIENT_TRIANGLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GRADIENT_RECT {
    pub UpperLeft: ULONG,
    pub LowerRight: ULONG,
}
pub type GRADIENT_RECT = _GRADIENT_RECT;
pub type PGRADIENT_RECT = *mut _GRADIENT_RECT;
pub type LPGRADIENT_RECT = *mut _GRADIENT_RECT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BLENDFUNCTION {
    pub BlendOp: BYTE,
    pub BlendFlags: BYTE,
    pub SourceConstantAlpha: BYTE,
    pub AlphaFormat: BYTE,
}
pub type BLENDFUNCTION = _BLENDFUNCTION;
pub type PBLENDFUNCTION = *mut _BLENDFUNCTION;
extern "C" {
    pub fn AlphaBlend(
        hdcDest: HDC,
        xoriginDest: ::std::os::raw::c_int,
        yoriginDest: ::std::os::raw::c_int,
        wDest: ::std::os::raw::c_int,
        hDest: ::std::os::raw::c_int,
        hdcSrc: HDC,
        xoriginSrc: ::std::os::raw::c_int,
        yoriginSrc: ::std::os::raw::c_int,
        wSrc: ::std::os::raw::c_int,
        hSrc: ::std::os::raw::c_int,
        ftn: BLENDFUNCTION,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GdiAlphaBlend(
        hdcDest: HDC,
        xoriginDest: ::std::os::raw::c_int,
        yoriginDest: ::std::os::raw::c_int,
        wDest: ::std::os::raw::c_int,
        hDest: ::std::os::raw::c_int,
        hdcSrc: HDC,
        xoriginSrc: ::std::os::raw::c_int,
        yoriginSrc: ::std::os::raw::c_int,
        wSrc: ::std::os::raw::c_int,
        hSrc: ::std::os::raw::c_int,
        ftn: BLENDFUNCTION,
    ) -> WINBOOL;
}
extern "C" {
    pub fn TransparentBlt(
        hdcDest: HDC,
        xoriginDest: ::std::os::raw::c_int,
        yoriginDest: ::std::os::raw::c_int,
        wDest: ::std::os::raw::c_int,
        hDest: ::std::os::raw::c_int,
        hdcSrc: HDC,
        xoriginSrc: ::std::os::raw::c_int,
        yoriginSrc: ::std::os::raw::c_int,
        wSrc: ::std::os::raw::c_int,
        hSrc: ::std::os::raw::c_int,
        crTransparent: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GdiTransparentBlt(
        hdcDest: HDC,
        xoriginDest: ::std::os::raw::c_int,
        yoriginDest: ::std::os::raw::c_int,
        wDest: ::std::os::raw::c_int,
        hDest: ::std::os::raw::c_int,
        hdcSrc: HDC,
        xoriginSrc: ::std::os::raw::c_int,
        yoriginSrc: ::std::os::raw::c_int,
        wSrc: ::std::os::raw::c_int,
        hSrc: ::std::os::raw::c_int,
        crTransparent: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GradientFill(
        hdc: HDC,
        pVertex: PTRIVERTEX,
        nVertex: ULONG,
        pMesh: PVOID,
        nMesh: ULONG,
        ulMode: ULONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GdiGradientFill(
        hdc: HDC,
        pVertex: PTRIVERTEX,
        nVertex: ULONG,
        pMesh: PVOID,
        nMesh: ULONG,
        ulMode: ULONG,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PlayMetaFileRecord(
        hdc: HDC,
        lpHandleTable: LPHANDLETABLE,
        lpMR: LPMETARECORD,
        noObjs: UINT,
    ) -> WINBOOL;
}
pub type MFENUMPROC = ::std::option::Option<
    unsafe extern "C" fn(
        hdc: HDC,
        lpht: *mut HANDLETABLE,
        lpMR: *mut METARECORD,
        nObj: ::std::os::raw::c_int,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn EnumMetaFile(hdc: HDC, hmf: HMETAFILE, lpProc: MFENUMPROC, lParam: LPARAM) -> WINBOOL;
}
pub type ENHMFENUMPROC = ::std::option::Option<
    unsafe extern "C" fn(
        hdc: HDC,
        lpht: *mut HANDLETABLE,
        lpmr: *const ENHMETARECORD,
        hHandles: ::std::os::raw::c_int,
        data: LPARAM,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn CloseEnhMetaFile(hdc: HDC) -> HENHMETAFILE;
}
extern "C" {
    pub fn CopyEnhMetaFileA(hEnh: HENHMETAFILE, lpFileName: LPCSTR) -> HENHMETAFILE;
}
extern "C" {
    pub fn CopyEnhMetaFileW(hEnh: HENHMETAFILE, lpFileName: LPCWSTR) -> HENHMETAFILE;
}
extern "C" {
    pub fn CreateEnhMetaFileA(
        hdc: HDC,
        lpFilename: LPCSTR,
        lprc: *const RECT,
        lpDesc: LPCSTR,
    ) -> HDC;
}
extern "C" {
    pub fn CreateEnhMetaFileW(
        hdc: HDC,
        lpFilename: LPCWSTR,
        lprc: *const RECT,
        lpDesc: LPCWSTR,
    ) -> HDC;
}
extern "C" {
    pub fn DeleteEnhMetaFile(hmf: HENHMETAFILE) -> WINBOOL;
}
extern "C" {
    pub fn EnumEnhMetaFile(
        hdc: HDC,
        hmf: HENHMETAFILE,
        lpProc: ENHMFENUMPROC,
        lpParam: LPVOID,
        lpRect: *const RECT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetEnhMetaFileA(lpName: LPCSTR) -> HENHMETAFILE;
}
extern "C" {
    pub fn GetEnhMetaFileW(lpName: LPCWSTR) -> HENHMETAFILE;
}
extern "C" {
    pub fn GetEnhMetaFileBits(hEMF: HENHMETAFILE, nSize: UINT, lpData: LPBYTE) -> UINT;
}
extern "C" {
    pub fn GetEnhMetaFileDescriptionA(
        hemf: HENHMETAFILE,
        cchBuffer: UINT,
        lpDescription: LPSTR,
    ) -> UINT;
}
extern "C" {
    pub fn GetEnhMetaFileDescriptionW(
        hemf: HENHMETAFILE,
        cchBuffer: UINT,
        lpDescription: LPWSTR,
    ) -> UINT;
}
extern "C" {
    pub fn GetEnhMetaFileHeader(
        hemf: HENHMETAFILE,
        nSize: UINT,
        lpEnhMetaHeader: LPENHMETAHEADER,
    ) -> UINT;
}
extern "C" {
    pub fn GetEnhMetaFilePaletteEntries(
        hemf: HENHMETAFILE,
        nNumEntries: UINT,
        lpPaletteEntries: LPPALETTEENTRY,
    ) -> UINT;
}
extern "C" {
    pub fn GetEnhMetaFilePixelFormat(
        hemf: HENHMETAFILE,
        cbBuffer: UINT,
        ppfd: *mut PIXELFORMATDESCRIPTOR,
    ) -> UINT;
}
extern "C" {
    pub fn GetWinMetaFileBits(
        hemf: HENHMETAFILE,
        cbData16: UINT,
        pData16: LPBYTE,
        iMapMode: INT,
        hdcRef: HDC,
    ) -> UINT;
}
extern "C" {
    pub fn PlayEnhMetaFile(hdc: HDC, hmf: HENHMETAFILE, lprect: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn PlayEnhMetaFileRecord(
        hdc: HDC,
        pht: LPHANDLETABLE,
        pmr: *const ENHMETARECORD,
        cht: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetEnhMetaFileBits(nSize: UINT, pb: *const BYTE) -> HENHMETAFILE;
}
extern "C" {
    pub fn SetWinMetaFileBits(
        nSize: UINT,
        lpMeta16Data: *const BYTE,
        hdcRef: HDC,
        lpMFP: *const METAFILEPICT,
    ) -> HENHMETAFILE;
}
extern "C" {
    pub fn GdiComment(hdc: HDC, nSize: UINT, lpData: *const BYTE) -> WINBOOL;
}
extern "C" {
    pub fn GetTextMetricsA(hdc: HDC, lptm: LPTEXTMETRICA) -> WINBOOL;
}
extern "C" {
    pub fn GetTextMetricsW(hdc: HDC, lptm: LPTEXTMETRICW) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDIBSECTION {
    pub dsBm: BITMAP,
    pub dsBmih: BITMAPINFOHEADER,
    pub dsBitfields: [DWORD; 3usize],
    pub dshSection: HANDLE,
    pub dsOffset: DWORD,
}
pub type DIBSECTION = tagDIBSECTION;
pub type LPDIBSECTION = *mut tagDIBSECTION;
pub type PDIBSECTION = *mut tagDIBSECTION;
extern "C" {
    pub fn AngleArc(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        r: DWORD,
        StartAngle: FLOAT,
        SweepAngle: FLOAT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PolyPolyline(hdc: HDC, apt: *const POINT, asz: *const DWORD, csz: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetWorldTransform(hdc: HDC, lpxf: LPXFORM) -> WINBOOL;
}
extern "C" {
    pub fn SetWorldTransform(hdc: HDC, lpxf: *const XFORM) -> WINBOOL;
}
extern "C" {
    pub fn ModifyWorldTransform(hdc: HDC, lpxf: *const XFORM, mode: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CombineTransform(lpxfOut: LPXFORM, lpxf1: *const XFORM, lpxf2: *const XFORM) -> WINBOOL;
}
extern "C" {
    pub fn CreateDIBSection(
        hdc: HDC,
        lpbmi: *const BITMAPINFO,
        usage: UINT,
        ppvBits: *mut *mut ::std::os::raw::c_void,
        hSection: HANDLE,
        offset: DWORD,
    ) -> HBITMAP;
}
extern "C" {
    pub fn GetDIBColorTable(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: *mut RGBQUAD) -> UINT;
}
extern "C" {
    pub fn SetDIBColorTable(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: *const RGBQUAD) -> UINT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCOLORADJUSTMENT {
    pub caSize: WORD,
    pub caFlags: WORD,
    pub caIlluminantIndex: WORD,
    pub caRedGamma: WORD,
    pub caGreenGamma: WORD,
    pub caBlueGamma: WORD,
    pub caReferenceBlack: WORD,
    pub caReferenceWhite: WORD,
    pub caContrast: SHORT,
    pub caBrightness: SHORT,
    pub caColorfulness: SHORT,
    pub caRedGreenTint: SHORT,
}
pub type COLORADJUSTMENT = tagCOLORADJUSTMENT;
pub type PCOLORADJUSTMENT = *mut tagCOLORADJUSTMENT;
pub type LPCOLORADJUSTMENT = *mut tagCOLORADJUSTMENT;
extern "C" {
    pub fn SetColorAdjustment(hdc: HDC, lpca: *const COLORADJUSTMENT) -> WINBOOL;
}
extern "C" {
    pub fn GetColorAdjustment(hdc: HDC, lpca: LPCOLORADJUSTMENT) -> WINBOOL;
}
extern "C" {
    pub fn CreateHalftonePalette(hdc: HDC) -> HPALETTE;
}
pub type ABORTPROC =
    ::std::option::Option<unsafe extern "C" fn(arg1: HDC, arg2: ::std::os::raw::c_int) -> WINBOOL>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DOCINFOA {
    pub cbSize: ::std::os::raw::c_int,
    pub lpszDocName: LPCSTR,
    pub lpszOutput: LPCSTR,
    pub lpszDatatype: LPCSTR,
    pub fwType: DWORD,
}
pub type DOCINFOA = _DOCINFOA;
pub type LPDOCINFOA = *mut _DOCINFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DOCINFOW {
    pub cbSize: ::std::os::raw::c_int,
    pub lpszDocName: LPCWSTR,
    pub lpszOutput: LPCWSTR,
    pub lpszDatatype: LPCWSTR,
    pub fwType: DWORD,
}
pub type DOCINFOW = _DOCINFOW;
pub type LPDOCINFOW = *mut _DOCINFOW;
pub type DOCINFO = DOCINFOA;
pub type LPDOCINFO = LPDOCINFOA;
extern "C" {
    pub fn StartDocA(hdc: HDC, lpdi: *const DOCINFOA) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn StartDocW(hdc: HDC, lpdi: *const DOCINFOW) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EndDoc(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn StartPage(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EndPage(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn AbortDoc(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetAbortProc(hdc: HDC, lpProc: ABORTPROC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn AbortPath(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn ArcTo(
        hdc: HDC,
        left: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        right: ::std::os::raw::c_int,
        bottom: ::std::os::raw::c_int,
        xr1: ::std::os::raw::c_int,
        yr1: ::std::os::raw::c_int,
        xr2: ::std::os::raw::c_int,
        yr2: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn BeginPath(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn CloseFigure(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn EndPath(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn FillPath(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn FlattenPath(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn GetPath(
        hdc: HDC,
        apt: LPPOINT,
        aj: LPBYTE,
        cpt: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn PathToRegion(hdc: HDC) -> HRGN;
}
extern "C" {
    pub fn PolyDraw(
        hdc: HDC,
        apt: *const POINT,
        aj: *const BYTE,
        cpt: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SelectClipPath(hdc: HDC, mode: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn SetArcDirection(hdc: HDC, dir: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetMiterLimit(hdc: HDC, limit: FLOAT, old: PFLOAT) -> WINBOOL;
}
extern "C" {
    pub fn StrokeAndFillPath(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn StrokePath(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn WidenPath(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn ExtCreatePen(
        iPenStyle: DWORD,
        cWidth: DWORD,
        plbrush: *const LOGBRUSH,
        cStyle: DWORD,
        pstyle: *const DWORD,
    ) -> HPEN;
}
extern "C" {
    pub fn GetMiterLimit(hdc: HDC, plimit: PFLOAT) -> WINBOOL;
}
extern "C" {
    pub fn GetArcDirection(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetObjectA(h: HANDLE, c: ::std::os::raw::c_int, pv: LPVOID) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetObjectW(h: HANDLE, c: ::std::os::raw::c_int, pv: LPVOID) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn MoveToEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn TextOutA(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lpString: LPCSTR,
        c: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn TextOutW(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lpString: LPCWSTR,
        c: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ExtTextOutA(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        options: UINT,
        lprect: *const RECT,
        lpString: LPCSTR,
        c: UINT,
        lpDx: *const INT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ExtTextOutW(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        options: UINT,
        lprect: *const RECT,
        lpString: LPCWSTR,
        c: UINT,
        lpDx: *const INT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PolyTextOutA(
        hdc: HDC,
        ppt: *const POLYTEXTA,
        nstrings: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PolyTextOutW(
        hdc: HDC,
        ppt: *const POLYTEXTW,
        nstrings: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreatePolygonRgn(
        pptl: *const POINT,
        cPoint: ::std::os::raw::c_int,
        iMode: ::std::os::raw::c_int,
    ) -> HRGN;
}
extern "C" {
    pub fn DPtoLP(hdc: HDC, lppt: LPPOINT, c: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn LPtoDP(hdc: HDC, lppt: LPPOINT, c: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn Polygon(hdc: HDC, apt: *const POINT, cpt: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn Polyline(hdc: HDC, apt: *const POINT, cpt: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn PolyBezier(hdc: HDC, apt: *const POINT, cpt: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn PolyBezierTo(hdc: HDC, apt: *const POINT, cpt: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn PolylineTo(hdc: HDC, apt: *const POINT, cpt: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetViewportExtEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetViewportOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetWindowExtEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetWindowOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn OffsetViewportOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn OffsetWindowOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ScaleViewportExtEx(
        hdc: HDC,
        xn: ::std::os::raw::c_int,
        dx: ::std::os::raw::c_int,
        yn: ::std::os::raw::c_int,
        yd: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ScaleWindowExtEx(
        hdc: HDC,
        xn: ::std::os::raw::c_int,
        xd: ::std::os::raw::c_int,
        yn: ::std::os::raw::c_int,
        yd: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetBitmapDimensionEx(
        hbm: HBITMAP,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetBrushOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetTextFaceA(hdc: HDC, c: ::std::os::raw::c_int, lpName: LPSTR)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTextFaceW(
        hdc: HDC,
        c: ::std::os::raw::c_int,
        lpName: LPWSTR,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagKERNINGPAIR {
    pub wFirst: WORD,
    pub wSecond: WORD,
    pub iKernAmount: ::std::os::raw::c_int,
}
pub type KERNINGPAIR = tagKERNINGPAIR;
pub type LPKERNINGPAIR = *mut tagKERNINGPAIR;
extern "C" {
    pub fn GetKerningPairsA(hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR) -> DWORD;
}
extern "C" {
    pub fn GetKerningPairsW(hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR) -> DWORD;
}
extern "C" {
    pub fn GetDCOrgEx(hdc: HDC, lppt: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn FixBrushOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        ptl: LPPOINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn UnrealizeObject(h: HGDIOBJ) -> WINBOOL;
}
extern "C" {
    pub fn GdiFlush() -> WINBOOL;
}
extern "C" {
    pub fn GdiSetBatchLimit(dw: DWORD) -> DWORD;
}
extern "C" {
    pub fn GdiGetBatchLimit() -> DWORD;
}
pub type ICMENUMPROCA =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR, arg2: LPARAM) -> ::std::os::raw::c_int>;
pub type ICMENUMPROCW = ::std::option::Option<
    unsafe extern "C" fn(arg1: LPWSTR, arg2: LPARAM) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn SetICMMode(hdc: HDC, mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CheckColorsInGamut(
        hdc: HDC,
        lpRGBTriple: LPVOID,
        dlpBuffer: LPVOID,
        nCount: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetColorSpace(hdc: HDC) -> HCOLORSPACE;
}
extern "C" {
    pub fn GetLogColorSpaceA(
        hColorSpace: HCOLORSPACE,
        lpBuffer: LPLOGCOLORSPACEA,
        nSize: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetLogColorSpaceW(
        hColorSpace: HCOLORSPACE,
        lpBuffer: LPLOGCOLORSPACEW,
        nSize: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateColorSpaceA(lplcs: LPLOGCOLORSPACEA) -> HCOLORSPACE;
}
extern "C" {
    pub fn CreateColorSpaceW(lplcs: LPLOGCOLORSPACEW) -> HCOLORSPACE;
}
extern "C" {
    pub fn SetColorSpace(hdc: HDC, hcs: HCOLORSPACE) -> HCOLORSPACE;
}
extern "C" {
    pub fn DeleteColorSpace(hcs: HCOLORSPACE) -> WINBOOL;
}
extern "C" {
    pub fn GetICMProfileA(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetICMProfileW(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPWSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetICMProfileA(hdc: HDC, lpFileName: LPSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetICMProfileW(hdc: HDC, lpFileName: LPWSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetDeviceGammaRamp(hdc: HDC, lpRamp: LPVOID) -> WINBOOL;
}
extern "C" {
    pub fn SetDeviceGammaRamp(hdc: HDC, lpRamp: LPVOID) -> WINBOOL;
}
extern "C" {
    pub fn ColorMatchToTarget(hdc: HDC, hdcTarget: HDC, action: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn EnumICMProfilesA(
        hdc: HDC,
        lpProc: ICMENUMPROCA,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumICMProfilesW(
        hdc: HDC,
        lpProc: ICMENUMPROCW,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn UpdateICMRegKeyA(
        reserved: DWORD,
        lpszCMID: LPSTR,
        lpszFileName: LPSTR,
        command: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn UpdateICMRegKeyW(
        reserved: DWORD,
        lpszCMID: LPWSTR,
        lpszFileName: LPWSTR,
        command: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ColorCorrectPalette(hdc: HDC, hPal: HPALETTE, deFirst: DWORD, num: DWORD) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMR {
    pub iType: DWORD,
    pub nSize: DWORD,
}
pub type EMR = tagEMR;
pub type PEMR = *mut tagEMR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRTEXT {
    pub ptlReference: POINTL,
    pub nChars: DWORD,
    pub offString: DWORD,
    pub fOptions: DWORD,
    pub rcl: RECTL,
    pub offDx: DWORD,
}
pub type EMRTEXT = tagEMRTEXT;
pub type PEMRTEXT = *mut tagEMRTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagABORTPATH {
    pub emr: EMR,
}
pub type EMRABORTPATH = tagABORTPATH;
pub type PEMRABORTPATH = *mut tagABORTPATH;
pub type EMRBEGINPATH = tagABORTPATH;
pub type PEMRBEGINPATH = *mut tagABORTPATH;
pub type EMRENDPATH = tagABORTPATH;
pub type PEMRENDPATH = *mut tagABORTPATH;
pub type EMRCLOSEFIGURE = tagABORTPATH;
pub type PEMRCLOSEFIGURE = *mut tagABORTPATH;
pub type EMRFLATTENPATH = tagABORTPATH;
pub type PEMRFLATTENPATH = *mut tagABORTPATH;
pub type EMRWIDENPATH = tagABORTPATH;
pub type PEMRWIDENPATH = *mut tagABORTPATH;
pub type EMRSETMETARGN = tagABORTPATH;
pub type PEMRSETMETARGN = *mut tagABORTPATH;
pub type EMRSAVEDC = tagABORTPATH;
pub type PEMRSAVEDC = *mut tagABORTPATH;
pub type EMRREALIZEPALETTE = tagABORTPATH;
pub type PEMRREALIZEPALETTE = *mut tagABORTPATH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSELECTCLIPPATH {
    pub emr: EMR,
    pub iMode: DWORD,
}
pub type EMRSELECTCLIPPATH = tagEMRSELECTCLIPPATH;
pub type PEMRSELECTCLIPPATH = *mut tagEMRSELECTCLIPPATH;
pub type EMRSETBKMODE = tagEMRSELECTCLIPPATH;
pub type PEMRSETBKMODE = *mut tagEMRSELECTCLIPPATH;
pub type EMRSETMAPMODE = tagEMRSELECTCLIPPATH;
pub type PEMRSETMAPMODE = *mut tagEMRSELECTCLIPPATH;
pub type EMRSETLAYOUT = tagEMRSELECTCLIPPATH;
pub type PEMRSETLAYOUT = *mut tagEMRSELECTCLIPPATH;
pub type EMRSETPOLYFILLMODE = tagEMRSELECTCLIPPATH;
pub type PEMRSETPOLYFILLMODE = *mut tagEMRSELECTCLIPPATH;
pub type EMRSETROP2 = tagEMRSELECTCLIPPATH;
pub type PEMRSETROP2 = *mut tagEMRSELECTCLIPPATH;
pub type EMRSETSTRETCHBLTMODE = tagEMRSELECTCLIPPATH;
pub type PEMRSETSTRETCHBLTMODE = *mut tagEMRSELECTCLIPPATH;
pub type EMRSETICMMODE = tagEMRSELECTCLIPPATH;
pub type PEMRSETICMMODE = *mut tagEMRSELECTCLIPPATH;
pub type EMRSETTEXTALIGN = tagEMRSELECTCLIPPATH;
pub type PEMRSETTEXTALIGN = *mut tagEMRSELECTCLIPPATH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETMITERLIMIT {
    pub emr: EMR,
    pub eMiterLimit: FLOAT,
}
pub type EMRSETMITERLIMIT = tagEMRSETMITERLIMIT;
pub type PEMRSETMITERLIMIT = *mut tagEMRSETMITERLIMIT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRRESTOREDC {
    pub emr: EMR,
    pub iRelative: LONG,
}
pub type EMRRESTOREDC = tagEMRRESTOREDC;
pub type PEMRRESTOREDC = *mut tagEMRRESTOREDC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETARCDIRECTION {
    pub emr: EMR,
    pub iArcDirection: DWORD,
}
pub type EMRSETARCDIRECTION = tagEMRSETARCDIRECTION;
pub type PEMRSETARCDIRECTION = *mut tagEMRSETARCDIRECTION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETMAPPERFLAGS {
    pub emr: EMR,
    pub dwFlags: DWORD,
}
pub type EMRSETMAPPERFLAGS = tagEMRSETMAPPERFLAGS;
pub type PEMRSETMAPPERFLAGS = *mut tagEMRSETMAPPERFLAGS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETTEXTCOLOR {
    pub emr: EMR,
    pub crColor: COLORREF,
}
pub type EMRSETBKCOLOR = tagEMRSETTEXTCOLOR;
pub type PEMRSETBKCOLOR = *mut tagEMRSETTEXTCOLOR;
pub type EMRSETTEXTCOLOR = tagEMRSETTEXTCOLOR;
pub type PEMRSETTEXTCOLOR = *mut tagEMRSETTEXTCOLOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSELECTOBJECT {
    pub emr: EMR,
    pub ihObject: DWORD,
}
pub type EMRSELECTOBJECT = tagEMRSELECTOBJECT;
pub type PEMRSELECTOBJECT = *mut tagEMRSELECTOBJECT;
pub type EMRDELETEOBJECT = tagEMRSELECTOBJECT;
pub type PEMRDELETEOBJECT = *mut tagEMRSELECTOBJECT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSELECTPALETTE {
    pub emr: EMR,
    pub ihPal: DWORD,
}
pub type EMRSELECTPALETTE = tagEMRSELECTPALETTE;
pub type PEMRSELECTPALETTE = *mut tagEMRSELECTPALETTE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRRESIZEPALETTE {
    pub emr: EMR,
    pub ihPal: DWORD,
    pub cEntries: DWORD,
}
pub type EMRRESIZEPALETTE = tagEMRRESIZEPALETTE;
pub type PEMRRESIZEPALETTE = *mut tagEMRRESIZEPALETTE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETPALETTEENTRIES {
    pub emr: EMR,
    pub ihPal: DWORD,
    pub iStart: DWORD,
    pub cEntries: DWORD,
    pub aPalEntries: [PALETTEENTRY; 1usize],
}
pub type EMRSETPALETTEENTRIES = tagEMRSETPALETTEENTRIES;
pub type PEMRSETPALETTEENTRIES = *mut tagEMRSETPALETTEENTRIES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETCOLORADJUSTMENT {
    pub emr: EMR,
    pub ColorAdjustment: COLORADJUSTMENT,
}
pub type EMRSETCOLORADJUSTMENT = tagEMRSETCOLORADJUSTMENT;
pub type PEMRSETCOLORADJUSTMENT = *mut tagEMRSETCOLORADJUSTMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRGDICOMMENT {
    pub emr: EMR,
    pub cbData: DWORD,
    pub Data: [BYTE; 1usize],
}
pub type EMRGDICOMMENT = tagEMRGDICOMMENT;
pub type PEMRGDICOMMENT = *mut tagEMRGDICOMMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMREOF {
    pub emr: EMR,
    pub nPalEntries: DWORD,
    pub offPalEntries: DWORD,
    pub nSizeLast: DWORD,
}
pub type EMREOF = tagEMREOF;
pub type PEMREOF = *mut tagEMREOF;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRLINETO {
    pub emr: EMR,
    pub ptl: POINTL,
}
pub type EMRLINETO = tagEMRLINETO;
pub type PEMRLINETO = *mut tagEMRLINETO;
pub type EMRMOVETOEX = tagEMRLINETO;
pub type PEMRMOVETOEX = *mut tagEMRLINETO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMROFFSETCLIPRGN {
    pub emr: EMR,
    pub ptlOffset: POINTL,
}
pub type EMROFFSETCLIPRGN = tagEMROFFSETCLIPRGN;
pub type PEMROFFSETCLIPRGN = *mut tagEMROFFSETCLIPRGN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRFILLPATH {
    pub emr: EMR,
    pub rclBounds: RECTL,
}
pub type EMRFILLPATH = tagEMRFILLPATH;
pub type PEMRFILLPATH = *mut tagEMRFILLPATH;
pub type EMRSTROKEANDFILLPATH = tagEMRFILLPATH;
pub type PEMRSTROKEANDFILLPATH = *mut tagEMRFILLPATH;
pub type EMRSTROKEPATH = tagEMRFILLPATH;
pub type PEMRSTROKEPATH = *mut tagEMRFILLPATH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMREXCLUDECLIPRECT {
    pub emr: EMR,
    pub rclClip: RECTL,
}
pub type EMREXCLUDECLIPRECT = tagEMREXCLUDECLIPRECT;
pub type PEMREXCLUDECLIPRECT = *mut tagEMREXCLUDECLIPRECT;
pub type EMRINTERSECTCLIPRECT = tagEMREXCLUDECLIPRECT;
pub type PEMRINTERSECTCLIPRECT = *mut tagEMREXCLUDECLIPRECT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETVIEWPORTORGEX {
    pub emr: EMR,
    pub ptlOrigin: POINTL,
}
pub type EMRSETVIEWPORTORGEX = tagEMRSETVIEWPORTORGEX;
pub type PEMRSETVIEWPORTORGEX = *mut tagEMRSETVIEWPORTORGEX;
pub type EMRSETWINDOWORGEX = tagEMRSETVIEWPORTORGEX;
pub type PEMRSETWINDOWORGEX = *mut tagEMRSETVIEWPORTORGEX;
pub type EMRSETBRUSHORGEX = tagEMRSETVIEWPORTORGEX;
pub type PEMRSETBRUSHORGEX = *mut tagEMRSETVIEWPORTORGEX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETVIEWPORTEXTEX {
    pub emr: EMR,
    pub szlExtent: SIZEL,
}
pub type EMRSETVIEWPORTEXTEX = tagEMRSETVIEWPORTEXTEX;
pub type PEMRSETVIEWPORTEXTEX = *mut tagEMRSETVIEWPORTEXTEX;
pub type EMRSETWINDOWEXTEX = tagEMRSETVIEWPORTEXTEX;
pub type PEMRSETWINDOWEXTEX = *mut tagEMRSETVIEWPORTEXTEX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSCALEVIEWPORTEXTEX {
    pub emr: EMR,
    pub xNum: LONG,
    pub xDenom: LONG,
    pub yNum: LONG,
    pub yDenom: LONG,
}
pub type EMRSCALEVIEWPORTEXTEX = tagEMRSCALEVIEWPORTEXTEX;
pub type PEMRSCALEVIEWPORTEXTEX = *mut tagEMRSCALEVIEWPORTEXTEX;
pub type EMRSCALEWINDOWEXTEX = tagEMRSCALEVIEWPORTEXTEX;
pub type PEMRSCALEWINDOWEXTEX = *mut tagEMRSCALEVIEWPORTEXTEX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETWORLDTRANSFORM {
    pub emr: EMR,
    pub xform: XFORM,
}
pub type EMRSETWORLDTRANSFORM = tagEMRSETWORLDTRANSFORM;
pub type PEMRSETWORLDTRANSFORM = *mut tagEMRSETWORLDTRANSFORM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRMODIFYWORLDTRANSFORM {
    pub emr: EMR,
    pub xform: XFORM,
    pub iMode: DWORD,
}
pub type EMRMODIFYWORLDTRANSFORM = tagEMRMODIFYWORLDTRANSFORM;
pub type PEMRMODIFYWORLDTRANSFORM = *mut tagEMRMODIFYWORLDTRANSFORM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETPIXELV {
    pub emr: EMR,
    pub ptlPixel: POINTL,
    pub crColor: COLORREF,
}
pub type EMRSETPIXELV = tagEMRSETPIXELV;
pub type PEMRSETPIXELV = *mut tagEMRSETPIXELV;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMREXTFLOODFILL {
    pub emr: EMR,
    pub ptlStart: POINTL,
    pub crColor: COLORREF,
    pub iMode: DWORD,
}
pub type EMREXTFLOODFILL = tagEMREXTFLOODFILL;
pub type PEMREXTFLOODFILL = *mut tagEMREXTFLOODFILL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRELLIPSE {
    pub emr: EMR,
    pub rclBox: RECTL,
}
pub type EMRELLIPSE = tagEMRELLIPSE;
pub type PEMRELLIPSE = *mut tagEMRELLIPSE;
pub type EMRRECTANGLE = tagEMRELLIPSE;
pub type PEMRRECTANGLE = *mut tagEMRELLIPSE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRROUNDRECT {
    pub emr: EMR,
    pub rclBox: RECTL,
    pub szlCorner: SIZEL,
}
pub type EMRROUNDRECT = tagEMRROUNDRECT;
pub type PEMRROUNDRECT = *mut tagEMRROUNDRECT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRARC {
    pub emr: EMR,
    pub rclBox: RECTL,
    pub ptlStart: POINTL,
    pub ptlEnd: POINTL,
}
pub type EMRARC = tagEMRARC;
pub type PEMRARC = *mut tagEMRARC;
pub type EMRARCTO = tagEMRARC;
pub type PEMRARCTO = *mut tagEMRARC;
pub type EMRCHORD = tagEMRARC;
pub type PEMRCHORD = *mut tagEMRARC;
pub type EMRPIE = tagEMRARC;
pub type PEMRPIE = *mut tagEMRARC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRANGLEARC {
    pub emr: EMR,
    pub ptlCenter: POINTL,
    pub nRadius: DWORD,
    pub eStartAngle: FLOAT,
    pub eSweepAngle: FLOAT,
}
pub type EMRANGLEARC = tagEMRANGLEARC;
pub type PEMRANGLEARC = *mut tagEMRANGLEARC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPOLYLINE {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub cptl: DWORD,
    pub aptl: [POINTL; 1usize],
}
pub type EMRPOLYLINE = tagEMRPOLYLINE;
pub type PEMRPOLYLINE = *mut tagEMRPOLYLINE;
pub type EMRPOLYBEZIER = tagEMRPOLYLINE;
pub type PEMRPOLYBEZIER = *mut tagEMRPOLYLINE;
pub type EMRPOLYGON = tagEMRPOLYLINE;
pub type PEMRPOLYGON = *mut tagEMRPOLYLINE;
pub type EMRPOLYBEZIERTO = tagEMRPOLYLINE;
pub type PEMRPOLYBEZIERTO = *mut tagEMRPOLYLINE;
pub type EMRPOLYLINETO = tagEMRPOLYLINE;
pub type PEMRPOLYLINETO = *mut tagEMRPOLYLINE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPOLYLINE16 {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub cpts: DWORD,
    pub apts: [POINTS; 1usize],
}
pub type EMRPOLYLINE16 = tagEMRPOLYLINE16;
pub type PEMRPOLYLINE16 = *mut tagEMRPOLYLINE16;
pub type EMRPOLYBEZIER16 = tagEMRPOLYLINE16;
pub type PEMRPOLYBEZIER16 = *mut tagEMRPOLYLINE16;
pub type EMRPOLYGON16 = tagEMRPOLYLINE16;
pub type PEMRPOLYGON16 = *mut tagEMRPOLYLINE16;
pub type EMRPOLYBEZIERTO16 = tagEMRPOLYLINE16;
pub type PEMRPOLYBEZIERTO16 = *mut tagEMRPOLYLINE16;
pub type EMRPOLYLINETO16 = tagEMRPOLYLINE16;
pub type PEMRPOLYLINETO16 = *mut tagEMRPOLYLINE16;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPOLYDRAW {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub cptl: DWORD,
    pub aptl: [POINTL; 1usize],
    pub abTypes: [BYTE; 1usize],
}
pub type EMRPOLYDRAW = tagEMRPOLYDRAW;
pub type PEMRPOLYDRAW = *mut tagEMRPOLYDRAW;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPOLYDRAW16 {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub cpts: DWORD,
    pub apts: [POINTS; 1usize],
    pub abTypes: [BYTE; 1usize],
}
pub type EMRPOLYDRAW16 = tagEMRPOLYDRAW16;
pub type PEMRPOLYDRAW16 = *mut tagEMRPOLYDRAW16;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPOLYPOLYLINE {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub nPolys: DWORD,
    pub cptl: DWORD,
    pub aPolyCounts: [DWORD; 1usize],
    pub aptl: [POINTL; 1usize],
}
pub type EMRPOLYPOLYLINE = tagEMRPOLYPOLYLINE;
pub type PEMRPOLYPOLYLINE = *mut tagEMRPOLYPOLYLINE;
pub type EMRPOLYPOLYGON = tagEMRPOLYPOLYLINE;
pub type PEMRPOLYPOLYGON = *mut tagEMRPOLYPOLYLINE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPOLYPOLYLINE16 {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub nPolys: DWORD,
    pub cpts: DWORD,
    pub aPolyCounts: [DWORD; 1usize],
    pub apts: [POINTS; 1usize],
}
pub type EMRPOLYPOLYLINE16 = tagEMRPOLYPOLYLINE16;
pub type PEMRPOLYPOLYLINE16 = *mut tagEMRPOLYPOLYLINE16;
pub type EMRPOLYPOLYGON16 = tagEMRPOLYPOLYLINE16;
pub type PEMRPOLYPOLYGON16 = *mut tagEMRPOLYPOLYLINE16;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRINVERTRGN {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub cbRgnData: DWORD,
    pub RgnData: [BYTE; 1usize],
}
pub type EMRINVERTRGN = tagEMRINVERTRGN;
pub type PEMRINVERTRGN = *mut tagEMRINVERTRGN;
pub type EMRPAINTRGN = tagEMRINVERTRGN;
pub type PEMRPAINTRGN = *mut tagEMRINVERTRGN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRFILLRGN {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub cbRgnData: DWORD,
    pub ihBrush: DWORD,
    pub RgnData: [BYTE; 1usize],
}
pub type EMRFILLRGN = tagEMRFILLRGN;
pub type PEMRFILLRGN = *mut tagEMRFILLRGN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRFRAMERGN {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub cbRgnData: DWORD,
    pub ihBrush: DWORD,
    pub szlStroke: SIZEL,
    pub RgnData: [BYTE; 1usize],
}
pub type EMRFRAMERGN = tagEMRFRAMERGN;
pub type PEMRFRAMERGN = *mut tagEMRFRAMERGN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMREXTSELECTCLIPRGN {
    pub emr: EMR,
    pub cbRgnData: DWORD,
    pub iMode: DWORD,
    pub RgnData: [BYTE; 1usize],
}
pub type EMREXTSELECTCLIPRGN = tagEMREXTSELECTCLIPRGN;
pub type PEMREXTSELECTCLIPRGN = *mut tagEMREXTSELECTCLIPRGN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMREXTTEXTOUTA {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub iGraphicsMode: DWORD,
    pub exScale: FLOAT,
    pub eyScale: FLOAT,
    pub emrtext: EMRTEXT,
}
pub type EMREXTTEXTOUTA = tagEMREXTTEXTOUTA;
pub type PEMREXTTEXTOUTA = *mut tagEMREXTTEXTOUTA;
pub type EMREXTTEXTOUTW = tagEMREXTTEXTOUTA;
pub type PEMREXTTEXTOUTW = *mut tagEMREXTTEXTOUTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPOLYTEXTOUTA {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub iGraphicsMode: DWORD,
    pub exScale: FLOAT,
    pub eyScale: FLOAT,
    pub cStrings: LONG,
    pub aemrtext: [EMRTEXT; 1usize],
}
pub type EMRPOLYTEXTOUTA = tagEMRPOLYTEXTOUTA;
pub type PEMRPOLYTEXTOUTA = *mut tagEMRPOLYTEXTOUTA;
pub type EMRPOLYTEXTOUTW = tagEMRPOLYTEXTOUTA;
pub type PEMRPOLYTEXTOUTW = *mut tagEMRPOLYTEXTOUTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRBITBLT {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub xDest: LONG,
    pub yDest: LONG,
    pub cxDest: LONG,
    pub cyDest: LONG,
    pub dwRop: DWORD,
    pub xSrc: LONG,
    pub ySrc: LONG,
    pub xformSrc: XFORM,
    pub crBkColorSrc: COLORREF,
    pub iUsageSrc: DWORD,
    pub offBmiSrc: DWORD,
    pub cbBmiSrc: DWORD,
    pub offBitsSrc: DWORD,
    pub cbBitsSrc: DWORD,
}
pub type EMRBITBLT = tagEMRBITBLT;
pub type PEMRBITBLT = *mut tagEMRBITBLT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSTRETCHBLT {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub xDest: LONG,
    pub yDest: LONG,
    pub cxDest: LONG,
    pub cyDest: LONG,
    pub dwRop: DWORD,
    pub xSrc: LONG,
    pub ySrc: LONG,
    pub xformSrc: XFORM,
    pub crBkColorSrc: COLORREF,
    pub iUsageSrc: DWORD,
    pub offBmiSrc: DWORD,
    pub cbBmiSrc: DWORD,
    pub offBitsSrc: DWORD,
    pub cbBitsSrc: DWORD,
    pub cxSrc: LONG,
    pub cySrc: LONG,
}
pub type EMRSTRETCHBLT = tagEMRSTRETCHBLT;
pub type PEMRSTRETCHBLT = *mut tagEMRSTRETCHBLT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRMASKBLT {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub xDest: LONG,
    pub yDest: LONG,
    pub cxDest: LONG,
    pub cyDest: LONG,
    pub dwRop: DWORD,
    pub xSrc: LONG,
    pub ySrc: LONG,
    pub xformSrc: XFORM,
    pub crBkColorSrc: COLORREF,
    pub iUsageSrc: DWORD,
    pub offBmiSrc: DWORD,
    pub cbBmiSrc: DWORD,
    pub offBitsSrc: DWORD,
    pub cbBitsSrc: DWORD,
    pub xMask: LONG,
    pub yMask: LONG,
    pub iUsageMask: DWORD,
    pub offBmiMask: DWORD,
    pub cbBmiMask: DWORD,
    pub offBitsMask: DWORD,
    pub cbBitsMask: DWORD,
}
pub type EMRMASKBLT = tagEMRMASKBLT;
pub type PEMRMASKBLT = *mut tagEMRMASKBLT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPLGBLT {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub aptlDest: [POINTL; 3usize],
    pub xSrc: LONG,
    pub ySrc: LONG,
    pub cxSrc: LONG,
    pub cySrc: LONG,
    pub xformSrc: XFORM,
    pub crBkColorSrc: COLORREF,
    pub iUsageSrc: DWORD,
    pub offBmiSrc: DWORD,
    pub cbBmiSrc: DWORD,
    pub offBitsSrc: DWORD,
    pub cbBitsSrc: DWORD,
    pub xMask: LONG,
    pub yMask: LONG,
    pub iUsageMask: DWORD,
    pub offBmiMask: DWORD,
    pub cbBmiMask: DWORD,
    pub offBitsMask: DWORD,
    pub cbBitsMask: DWORD,
}
pub type EMRPLGBLT = tagEMRPLGBLT;
pub type PEMRPLGBLT = *mut tagEMRPLGBLT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETDIBITSTODEVICE {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub xDest: LONG,
    pub yDest: LONG,
    pub xSrc: LONG,
    pub ySrc: LONG,
    pub cxSrc: LONG,
    pub cySrc: LONG,
    pub offBmiSrc: DWORD,
    pub cbBmiSrc: DWORD,
    pub offBitsSrc: DWORD,
    pub cbBitsSrc: DWORD,
    pub iUsageSrc: DWORD,
    pub iStartScan: DWORD,
    pub cScans: DWORD,
}
pub type EMRSETDIBITSTODEVICE = tagEMRSETDIBITSTODEVICE;
pub type PEMRSETDIBITSTODEVICE = *mut tagEMRSETDIBITSTODEVICE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSTRETCHDIBITS {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub xDest: LONG,
    pub yDest: LONG,
    pub xSrc: LONG,
    pub ySrc: LONG,
    pub cxSrc: LONG,
    pub cySrc: LONG,
    pub offBmiSrc: DWORD,
    pub cbBmiSrc: DWORD,
    pub offBitsSrc: DWORD,
    pub cbBitsSrc: DWORD,
    pub iUsageSrc: DWORD,
    pub dwRop: DWORD,
    pub cxDest: LONG,
    pub cyDest: LONG,
}
pub type EMRSTRETCHDIBITS = tagEMRSTRETCHDIBITS;
pub type PEMRSTRETCHDIBITS = *mut tagEMRSTRETCHDIBITS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagEMREXTCREATEFONTINDIRECTW {
    pub emr: EMR,
    pub ihFont: DWORD,
    pub elfw: EXTLOGFONTW,
}
pub type EMREXTCREATEFONTINDIRECTW = tagEMREXTCREATEFONTINDIRECTW;
pub type PEMREXTCREATEFONTINDIRECTW = *mut tagEMREXTCREATEFONTINDIRECTW;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRCREATEPALETTE {
    pub emr: EMR,
    pub ihPal: DWORD,
    pub lgpl: LOGPALETTE,
}
pub type EMRCREATEPALETTE = tagEMRCREATEPALETTE;
pub type PEMRCREATEPALETTE = *mut tagEMRCREATEPALETTE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRCREATEPEN {
    pub emr: EMR,
    pub ihPen: DWORD,
    pub lopn: LOGPEN,
}
pub type EMRCREATEPEN = tagEMRCREATEPEN;
pub type PEMRCREATEPEN = *mut tagEMRCREATEPEN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMREXTCREATEPEN {
    pub emr: EMR,
    pub ihPen: DWORD,
    pub offBmi: DWORD,
    pub cbBmi: DWORD,
    pub offBits: DWORD,
    pub cbBits: DWORD,
    pub elp: EXTLOGPEN,
}
pub type EMREXTCREATEPEN = tagEMREXTCREATEPEN;
pub type PEMREXTCREATEPEN = *mut tagEMREXTCREATEPEN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRCREATEBRUSHINDIRECT {
    pub emr: EMR,
    pub ihBrush: DWORD,
    pub lb: LOGBRUSH32,
}
pub type EMRCREATEBRUSHINDIRECT = tagEMRCREATEBRUSHINDIRECT;
pub type PEMRCREATEBRUSHINDIRECT = *mut tagEMRCREATEBRUSHINDIRECT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRCREATEMONOBRUSH {
    pub emr: EMR,
    pub ihBrush: DWORD,
    pub iUsage: DWORD,
    pub offBmi: DWORD,
    pub cbBmi: DWORD,
    pub offBits: DWORD,
    pub cbBits: DWORD,
}
pub type EMRCREATEMONOBRUSH = tagEMRCREATEMONOBRUSH;
pub type PEMRCREATEMONOBRUSH = *mut tagEMRCREATEMONOBRUSH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRCREATEDIBPATTERNBRUSHPT {
    pub emr: EMR,
    pub ihBrush: DWORD,
    pub iUsage: DWORD,
    pub offBmi: DWORD,
    pub cbBmi: DWORD,
    pub offBits: DWORD,
    pub cbBits: DWORD,
}
pub type EMRCREATEDIBPATTERNBRUSHPT = tagEMRCREATEDIBPATTERNBRUSHPT;
pub type PEMRCREATEDIBPATTERNBRUSHPT = *mut tagEMRCREATEDIBPATTERNBRUSHPT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRFORMAT {
    pub dSignature: DWORD,
    pub nVersion: DWORD,
    pub cbData: DWORD,
    pub offData: DWORD,
}
pub type EMRFORMAT = tagEMRFORMAT;
pub type PEMRFORMAT = *mut tagEMRFORMAT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRGLSRECORD {
    pub emr: EMR,
    pub cbData: DWORD,
    pub Data: [BYTE; 1usize],
}
pub type EMRGLSRECORD = tagEMRGLSRECORD;
pub type PEMRGLSRECORD = *mut tagEMRGLSRECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRGLSBOUNDEDRECORD {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub cbData: DWORD,
    pub Data: [BYTE; 1usize],
}
pub type EMRGLSBOUNDEDRECORD = tagEMRGLSBOUNDEDRECORD;
pub type PEMRGLSBOUNDEDRECORD = *mut tagEMRGLSBOUNDEDRECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPIXELFORMAT {
    pub emr: EMR,
    pub pfd: PIXELFORMATDESCRIPTOR,
}
pub type EMRPIXELFORMAT = tagEMRPIXELFORMAT;
pub type PEMRPIXELFORMAT = *mut tagEMRPIXELFORMAT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagEMRCREATECOLORSPACE {
    pub emr: EMR,
    pub ihCS: DWORD,
    pub lcs: LOGCOLORSPACEA,
}
pub type EMRCREATECOLORSPACE = tagEMRCREATECOLORSPACE;
pub type PEMRCREATECOLORSPACE = *mut tagEMRCREATECOLORSPACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETCOLORSPACE {
    pub emr: EMR,
    pub ihCS: DWORD,
}
pub type EMRSETCOLORSPACE = tagEMRSETCOLORSPACE;
pub type PEMRSETCOLORSPACE = *mut tagEMRSETCOLORSPACE;
pub type EMRSELECTCOLORSPACE = tagEMRSETCOLORSPACE;
pub type PEMRSELECTCOLORSPACE = *mut tagEMRSETCOLORSPACE;
pub type EMRDELETECOLORSPACE = tagEMRSETCOLORSPACE;
pub type PEMRDELETECOLORSPACE = *mut tagEMRSETCOLORSPACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMREXTESCAPE {
    pub emr: EMR,
    pub iEscape: INT,
    pub cbEscData: INT,
    pub EscData: [BYTE; 1usize],
}
pub type EMREXTESCAPE = tagEMREXTESCAPE;
pub type PEMREXTESCAPE = *mut tagEMREXTESCAPE;
pub type EMRDRAWESCAPE = tagEMREXTESCAPE;
pub type PEMRDRAWESCAPE = *mut tagEMREXTESCAPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRNAMEDESCAPE {
    pub emr: EMR,
    pub iEscape: INT,
    pub cbDriver: INT,
    pub cbEscData: INT,
    pub EscData: [BYTE; 1usize],
}
pub type EMRNAMEDESCAPE = tagEMRNAMEDESCAPE;
pub type PEMRNAMEDESCAPE = *mut tagEMRNAMEDESCAPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETICMPROFILE {
    pub emr: EMR,
    pub dwFlags: DWORD,
    pub cbName: DWORD,
    pub cbData: DWORD,
    pub Data: [BYTE; 1usize],
}
pub type EMRSETICMPROFILE = tagEMRSETICMPROFILE;
pub type PEMRSETICMPROFILE = *mut tagEMRSETICMPROFILE;
pub type EMRSETICMPROFILEA = tagEMRSETICMPROFILE;
pub type PEMRSETICMPROFILEA = *mut tagEMRSETICMPROFILE;
pub type EMRSETICMPROFILEW = tagEMRSETICMPROFILE;
pub type PEMRSETICMPROFILEW = *mut tagEMRSETICMPROFILE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagEMRCREATECOLORSPACEW {
    pub emr: EMR,
    pub ihCS: DWORD,
    pub lcs: LOGCOLORSPACEW,
    pub dwFlags: DWORD,
    pub cbData: DWORD,
    pub Data: [BYTE; 1usize],
}
pub type EMRCREATECOLORSPACEW = tagEMRCREATECOLORSPACEW;
pub type PEMRCREATECOLORSPACEW = *mut tagEMRCREATECOLORSPACEW;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCOLORMATCHTOTARGET {
    pub emr: EMR,
    pub dwAction: DWORD,
    pub dwFlags: DWORD,
    pub cbName: DWORD,
    pub cbData: DWORD,
    pub Data: [BYTE; 1usize],
}
pub type EMRCOLORMATCHTOTARGET = tagCOLORMATCHTOTARGET;
pub type PEMRCOLORMATCHTOTARGET = *mut tagCOLORMATCHTOTARGET;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCOLORCORRECTPALETTE {
    pub emr: EMR,
    pub ihPalette: DWORD,
    pub nFirstEntry: DWORD,
    pub nPalEntries: DWORD,
    pub nReserved: DWORD,
}
pub type EMRCOLORCORRECTPALETTE = tagCOLORCORRECTPALETTE;
pub type PEMRCOLORCORRECTPALETTE = *mut tagCOLORCORRECTPALETTE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRALPHABLEND {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub xDest: LONG,
    pub yDest: LONG,
    pub cxDest: LONG,
    pub cyDest: LONG,
    pub dwRop: DWORD,
    pub xSrc: LONG,
    pub ySrc: LONG,
    pub xformSrc: XFORM,
    pub crBkColorSrc: COLORREF,
    pub iUsageSrc: DWORD,
    pub offBmiSrc: DWORD,
    pub cbBmiSrc: DWORD,
    pub offBitsSrc: DWORD,
    pub cbBitsSrc: DWORD,
    pub cxSrc: LONG,
    pub cySrc: LONG,
}
pub type EMRALPHABLEND = tagEMRALPHABLEND;
pub type PEMRALPHABLEND = *mut tagEMRALPHABLEND;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRGRADIENTFILL {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub nVer: DWORD,
    pub nTri: DWORD,
    pub ulMode: ULONG,
    pub Ver: [TRIVERTEX; 1usize],
}
pub type EMRGRADIENTFILL = tagEMRGRADIENTFILL;
pub type PEMRGRADIENTFILL = *mut tagEMRGRADIENTFILL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRTRANSPARENTBLT {
    pub emr: EMR,
    pub rclBounds: RECTL,
    pub xDest: LONG,
    pub yDest: LONG,
    pub cxDest: LONG,
    pub cyDest: LONG,
    pub dwRop: DWORD,
    pub xSrc: LONG,
    pub ySrc: LONG,
    pub xformSrc: XFORM,
    pub crBkColorSrc: COLORREF,
    pub iUsageSrc: DWORD,
    pub offBmiSrc: DWORD,
    pub cbBmiSrc: DWORD,
    pub offBitsSrc: DWORD,
    pub cbBitsSrc: DWORD,
    pub cxSrc: LONG,
    pub cySrc: LONG,
}
pub type EMRTRANSPARENTBLT = tagEMRTRANSPARENTBLT;
pub type PEMRTRANSPARENTBLT = *mut tagEMRTRANSPARENTBLT;
extern "C" {
    pub fn wglCopyContext(arg1: HGLRC, arg2: HGLRC, arg3: UINT) -> WINBOOL;
}
extern "C" {
    pub fn wglCreateContext(arg1: HDC) -> HGLRC;
}
extern "C" {
    pub fn wglCreateLayerContext(arg1: HDC, arg2: ::std::os::raw::c_int) -> HGLRC;
}
extern "C" {
    pub fn wglDeleteContext(arg1: HGLRC) -> WINBOOL;
}
extern "C" {
    pub fn wglGetCurrentContext() -> HGLRC;
}
extern "C" {
    pub fn wglGetCurrentDC() -> HDC;
}
extern "C" {
    pub fn wglGetProcAddress(arg1: LPCSTR) -> PROC;
}
extern "C" {
    pub fn wglMakeCurrent(arg1: HDC, arg2: HGLRC) -> WINBOOL;
}
extern "C" {
    pub fn wglShareLists(arg1: HGLRC, arg2: HGLRC) -> WINBOOL;
}
extern "C" {
    pub fn wglUseFontBitmapsA(arg1: HDC, arg2: DWORD, arg3: DWORD, arg4: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn wglUseFontBitmapsW(arg1: HDC, arg2: DWORD, arg3: DWORD, arg4: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SwapBuffers(arg1: HDC) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POINTFLOAT {
    pub x: FLOAT,
    pub y: FLOAT,
}
pub type POINTFLOAT = _POINTFLOAT;
pub type PPOINTFLOAT = *mut _POINTFLOAT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GLYPHMETRICSFLOAT {
    pub gmfBlackBoxX: FLOAT,
    pub gmfBlackBoxY: FLOAT,
    pub gmfptGlyphOrigin: POINTFLOAT,
    pub gmfCellIncX: FLOAT,
    pub gmfCellIncY: FLOAT,
}
pub type GLYPHMETRICSFLOAT = _GLYPHMETRICSFLOAT;
pub type PGLYPHMETRICSFLOAT = *mut _GLYPHMETRICSFLOAT;
pub type LPGLYPHMETRICSFLOAT = *mut _GLYPHMETRICSFLOAT;
extern "C" {
    pub fn wglUseFontOutlinesA(
        arg1: HDC,
        arg2: DWORD,
        arg3: DWORD,
        arg4: DWORD,
        arg5: FLOAT,
        arg6: FLOAT,
        arg7: ::std::os::raw::c_int,
        arg8: LPGLYPHMETRICSFLOAT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn wglUseFontOutlinesW(
        arg1: HDC,
        arg2: DWORD,
        arg3: DWORD,
        arg4: DWORD,
        arg5: FLOAT,
        arg6: FLOAT,
        arg7: ::std::os::raw::c_int,
        arg8: LPGLYPHMETRICSFLOAT,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLAYERPLANEDESCRIPTOR {
    pub nSize: WORD,
    pub nVersion: WORD,
    pub dwFlags: DWORD,
    pub iPixelType: BYTE,
    pub cColorBits: BYTE,
    pub cRedBits: BYTE,
    pub cRedShift: BYTE,
    pub cGreenBits: BYTE,
    pub cGreenShift: BYTE,
    pub cBlueBits: BYTE,
    pub cBlueShift: BYTE,
    pub cAlphaBits: BYTE,
    pub cAlphaShift: BYTE,
    pub cAccumBits: BYTE,
    pub cAccumRedBits: BYTE,
    pub cAccumGreenBits: BYTE,
    pub cAccumBlueBits: BYTE,
    pub cAccumAlphaBits: BYTE,
    pub cDepthBits: BYTE,
    pub cStencilBits: BYTE,
    pub cAuxBuffers: BYTE,
    pub iLayerPlane: BYTE,
    pub bReserved: BYTE,
    pub crTransparent: COLORREF,
}
pub type LAYERPLANEDESCRIPTOR = tagLAYERPLANEDESCRIPTOR;
pub type PLAYERPLANEDESCRIPTOR = *mut tagLAYERPLANEDESCRIPTOR;
pub type LPLAYERPLANEDESCRIPTOR = *mut tagLAYERPLANEDESCRIPTOR;
extern "C" {
    pub fn wglDescribeLayerPlane(
        arg1: HDC,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::os::raw::c_int,
        arg4: UINT,
        arg5: LPLAYERPLANEDESCRIPTOR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn wglSetLayerPaletteEntries(
        arg1: HDC,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::os::raw::c_int,
        arg5: *const COLORREF,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wglGetLayerPaletteEntries(
        arg1: HDC,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::os::raw::c_int,
        arg5: *mut COLORREF,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wglRealizeLayerPalette(arg1: HDC, arg2: ::std::os::raw::c_int, arg3: WINBOOL)
        -> WINBOOL;
}
extern "C" {
    pub fn wglSwapLayerBuffers(arg1: HDC, arg2: UINT) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WGLSWAP {
    pub hdc: HDC,
    pub uiFlags: UINT,
}
pub type WGLSWAP = _WGLSWAP;
pub type PWGLSWAP = *mut _WGLSWAP;
pub type LPWGLSWAP = *mut _WGLSWAP;
extern "C" {
    pub fn wglSwapMultipleBuffers(arg1: UINT, arg2: *const WGLSWAP) -> DWORD;
}
pub type HDWP = HANDLE;
pub type MENUTEMPLATEA = ::std::os::raw::c_void;
pub type MENUTEMPLATEW = ::std::os::raw::c_void;
pub type LPMENUTEMPLATEA = PVOID;
pub type LPMENUTEMPLATEW = PVOID;
pub type MENUTEMPLATE = MENUTEMPLATEA;
pub type LPMENUTEMPLATE = LPMENUTEMPLATEA;
pub type WNDPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> LRESULT,
>;
pub type DLGPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> INT_PTR,
>;
pub type TIMERPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: UINT_PTR, arg4: DWORD),
>;
pub type GRAYSTRINGPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HDC, arg2: LPARAM, arg3: ::std::os::raw::c_int) -> WINBOOL,
>;
pub type WNDENUMPROC =
    ::std::option::Option<unsafe extern "C" fn(arg1: HWND, arg2: LPARAM) -> WINBOOL>;
pub type HOOKPROC = ::std::option::Option<
    unsafe extern "C" fn(code: ::std::os::raw::c_int, wParam: WPARAM, lParam: LPARAM) -> LRESULT,
>;
pub type SENDASYNCPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: ULONG_PTR, arg4: LRESULT),
>;
pub type PROPENUMPROCA =
    ::std::option::Option<unsafe extern "C" fn(arg1: HWND, arg2: LPCSTR, arg3: HANDLE) -> WINBOOL>;
pub type PROPENUMPROCW =
    ::std::option::Option<unsafe extern "C" fn(arg1: HWND, arg2: LPCWSTR, arg3: HANDLE) -> WINBOOL>;
pub type PROPENUMPROCEXA = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: LPSTR, arg3: HANDLE, arg4: ULONG_PTR) -> WINBOOL,
>;
pub type PROPENUMPROCEXW = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: LPWSTR, arg3: HANDLE, arg4: ULONG_PTR) -> WINBOOL,
>;
pub type EDITWORDBREAKPROCA = ::std::option::Option<
    unsafe extern "C" fn(
        lpch: LPSTR,
        ichCurrent: ::std::os::raw::c_int,
        cch: ::std::os::raw::c_int,
        code: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int,
>;
pub type EDITWORDBREAKPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        lpch: LPWSTR,
        ichCurrent: ::std::os::raw::c_int,
        cch: ::std::os::raw::c_int,
        code: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int,
>;
pub type DRAWSTATEPROC = ::std::option::Option<
    unsafe extern "C" fn(
        hdc: HDC,
        lData: LPARAM,
        wData: WPARAM,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
    ) -> WINBOOL,
>;
pub type PROPENUMPROC = PROPENUMPROCA;
pub type PROPENUMPROCEX = PROPENUMPROCEXA;
pub type EDITWORDBREAKPROC = EDITWORDBREAKPROCA;
pub type NAMEENUMPROCA =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR, arg2: LPARAM) -> WINBOOL>;
pub type NAMEENUMPROCW =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: LPARAM) -> WINBOOL>;
pub type WINSTAENUMPROCA = NAMEENUMPROCA;
pub type WINSTAENUMPROCW = NAMEENUMPROCW;
pub type DESKTOPENUMPROCA = NAMEENUMPROCA;
pub type DESKTOPENUMPROCW = NAMEENUMPROCW;
pub type WINSTAENUMPROC = WINSTAENUMPROCA;
pub type DESKTOPENUMPROC = DESKTOPENUMPROCA;
extern "C" {
    pub fn wvsprintfA(arg1: LPSTR, arg2: LPCSTR, arglist: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wvsprintfW(arg1: LPWSTR, arg2: LPCWSTR, arglist: va_list) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wsprintfA(arg1: LPSTR, arg2: LPCSTR, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wsprintfW(arg1: LPWSTR, arg2: LPCWSTR, ...) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCBT_CREATEWNDA {
    pub lpcs: *mut tagCREATESTRUCTA,
    pub hwndInsertAfter: HWND,
}
pub type CBT_CREATEWNDA = tagCBT_CREATEWNDA;
pub type LPCBT_CREATEWNDA = *mut tagCBT_CREATEWNDA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCBT_CREATEWNDW {
    pub lpcs: *mut tagCREATESTRUCTW,
    pub hwndInsertAfter: HWND,
}
pub type CBT_CREATEWNDW = tagCBT_CREATEWNDW;
pub type LPCBT_CREATEWNDW = *mut tagCBT_CREATEWNDW;
pub type CBT_CREATEWND = CBT_CREATEWNDA;
pub type LPCBT_CREATEWND = LPCBT_CREATEWNDA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCBTACTIVATESTRUCT {
    pub fMouse: WINBOOL,
    pub hWndActive: HWND,
}
pub type CBTACTIVATESTRUCT = tagCBTACTIVATESTRUCT;
pub type LPCBTACTIVATESTRUCT = *mut tagCBTACTIVATESTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagWTSSESSION_NOTIFICATION {
    pub cbSize: DWORD,
    pub dwSessionId: DWORD,
}
pub type WTSSESSION_NOTIFICATION = tagWTSSESSION_NOTIFICATION;
pub type PWTSSESSION_NOTIFICATION = *mut tagWTSSESSION_NOTIFICATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SHELLHOOKINFO {
    pub hwnd: HWND,
    pub rc: RECT,
}
pub type LPSHELLHOOKINFO = *mut SHELLHOOKINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEVENTMSG {
    pub message: UINT,
    pub paramL: UINT,
    pub paramH: UINT,
    pub time: DWORD,
    pub hwnd: HWND,
}
pub type EVENTMSG = tagEVENTMSG;
pub type PEVENTMSGMSG = *mut tagEVENTMSG;
pub type NPEVENTMSGMSG = *mut tagEVENTMSG;
pub type LPEVENTMSGMSG = *mut tagEVENTMSG;
pub type PEVENTMSG = *mut tagEVENTMSG;
pub type NPEVENTMSG = *mut tagEVENTMSG;
pub type LPEVENTMSG = *mut tagEVENTMSG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCWPSTRUCT {
    pub lParam: LPARAM,
    pub wParam: WPARAM,
    pub message: UINT,
    pub hwnd: HWND,
}
pub type CWPSTRUCT = tagCWPSTRUCT;
pub type PCWPSTRUCT = *mut tagCWPSTRUCT;
pub type NPCWPSTRUCT = *mut tagCWPSTRUCT;
pub type LPCWPSTRUCT = *mut tagCWPSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCWPRETSTRUCT {
    pub lResult: LRESULT,
    pub lParam: LPARAM,
    pub wParam: WPARAM,
    pub message: UINT,
    pub hwnd: HWND,
}
pub type CWPRETSTRUCT = tagCWPRETSTRUCT;
pub type PCWPRETSTRUCT = *mut tagCWPRETSTRUCT;
pub type NPCWPRETSTRUCT = *mut tagCWPRETSTRUCT;
pub type LPCWPRETSTRUCT = *mut tagCWPRETSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagKBDLLHOOKSTRUCT {
    pub vkCode: DWORD,
    pub scanCode: DWORD,
    pub flags: DWORD,
    pub time: DWORD,
    pub dwExtraInfo: ULONG_PTR,
}
pub type KBDLLHOOKSTRUCT = tagKBDLLHOOKSTRUCT;
pub type LPKBDLLHOOKSTRUCT = *mut tagKBDLLHOOKSTRUCT;
pub type PKBDLLHOOKSTRUCT = *mut tagKBDLLHOOKSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMSLLHOOKSTRUCT {
    pub pt: POINT,
    pub mouseData: DWORD,
    pub flags: DWORD,
    pub time: DWORD,
    pub dwExtraInfo: ULONG_PTR,
}
pub type MSLLHOOKSTRUCT = tagMSLLHOOKSTRUCT;
pub type LPMSLLHOOKSTRUCT = *mut tagMSLLHOOKSTRUCT;
pub type PMSLLHOOKSTRUCT = *mut tagMSLLHOOKSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDEBUGHOOKINFO {
    pub idThread: DWORD,
    pub idThreadInstaller: DWORD,
    pub lParam: LPARAM,
    pub wParam: WPARAM,
    pub code: ::std::os::raw::c_int,
}
pub type DEBUGHOOKINFO = tagDEBUGHOOKINFO;
pub type PDEBUGHOOKINFO = *mut tagDEBUGHOOKINFO;
pub type NPDEBUGHOOKINFO = *mut tagDEBUGHOOKINFO;
pub type LPDEBUGHOOKINFO = *mut tagDEBUGHOOKINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMOUSEHOOKSTRUCT {
    pub pt: POINT,
    pub hwnd: HWND,
    pub wHitTestCode: UINT,
    pub dwExtraInfo: ULONG_PTR,
}
pub type MOUSEHOOKSTRUCT = tagMOUSEHOOKSTRUCT;
pub type LPMOUSEHOOKSTRUCT = *mut tagMOUSEHOOKSTRUCT;
pub type PMOUSEHOOKSTRUCT = *mut tagMOUSEHOOKSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMOUSEHOOKSTRUCTEX {
    pub __unnamed: MOUSEHOOKSTRUCT,
    pub mouseData: DWORD,
}
pub type MOUSEHOOKSTRUCTEX = tagMOUSEHOOKSTRUCTEX;
pub type LPMOUSEHOOKSTRUCTEX = *mut tagMOUSEHOOKSTRUCTEX;
pub type PMOUSEHOOKSTRUCTEX = *mut tagMOUSEHOOKSTRUCTEX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagHARDWAREHOOKSTRUCT {
    pub hwnd: HWND,
    pub message: UINT,
    pub wParam: WPARAM,
    pub lParam: LPARAM,
}
pub type HARDWAREHOOKSTRUCT = tagHARDWAREHOOKSTRUCT;
pub type LPHARDWAREHOOKSTRUCT = *mut tagHARDWAREHOOKSTRUCT;
pub type PHARDWAREHOOKSTRUCT = *mut tagHARDWAREHOOKSTRUCT;
extern "C" {
    pub fn LoadKeyboardLayoutA(pwszKLID: LPCSTR, Flags: UINT) -> HKL;
}
extern "C" {
    pub fn LoadKeyboardLayoutW(pwszKLID: LPCWSTR, Flags: UINT) -> HKL;
}
extern "C" {
    pub fn ActivateKeyboardLayout(hkl: HKL, Flags: UINT) -> HKL;
}
extern "C" {
    pub fn ToUnicodeEx(
        wVirtKey: UINT,
        wScanCode: UINT,
        lpKeyState: *const BYTE,
        pwszBuff: LPWSTR,
        cchBuff: ::std::os::raw::c_int,
        wFlags: UINT,
        dwhkl: HKL,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn UnloadKeyboardLayout(hkl: HKL) -> WINBOOL;
}
extern "C" {
    pub fn GetKeyboardLayoutNameA(pwszKLID: LPSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetKeyboardLayoutNameW(pwszKLID: LPWSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetKeyboardLayoutList(
        nBuff: ::std::os::raw::c_int,
        lpList: *mut HKL,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetKeyboardLayout(idThread: DWORD) -> HKL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMOUSEMOVEPOINT {
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub time: DWORD,
    pub dwExtraInfo: ULONG_PTR,
}
pub type MOUSEMOVEPOINT = tagMOUSEMOVEPOINT;
pub type PMOUSEMOVEPOINT = *mut tagMOUSEMOVEPOINT;
pub type LPMOUSEMOVEPOINT = *mut tagMOUSEMOVEPOINT;
extern "C" {
    pub fn GetMouseMovePointsEx(
        cbSize: UINT,
        lppt: LPMOUSEMOVEPOINT,
        lpptBuf: LPMOUSEMOVEPOINT,
        nBufPoints: ::std::os::raw::c_int,
        resolution: DWORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CreateDesktopA(
        lpszDesktop: LPCSTR,
        lpszDevice: LPCSTR,
        pDevmode: LPDEVMODEA,
        dwFlags: DWORD,
        dwDesiredAccess: ACCESS_MASK,
        lpsa: LPSECURITY_ATTRIBUTES,
    ) -> HDESK;
}
extern "C" {
    pub fn CreateDesktopW(
        lpszDesktop: LPCWSTR,
        lpszDevice: LPCWSTR,
        pDevmode: LPDEVMODEW,
        dwFlags: DWORD,
        dwDesiredAccess: ACCESS_MASK,
        lpsa: LPSECURITY_ATTRIBUTES,
    ) -> HDESK;
}
extern "C" {
    pub fn CreateDesktopExA(
        lpszDesktop: LPCSTR,
        lpszDevice: LPCSTR,
        pDevmode: *mut DEVMODEA,
        dwFlags: DWORD,
        dwDesiredAccess: ACCESS_MASK,
        lpsa: LPSECURITY_ATTRIBUTES,
        ulHeapSize: ULONG,
        pvoid: PVOID,
    ) -> HDESK;
}
extern "C" {
    pub fn CreateDesktopExW(
        lpszDesktop: LPCWSTR,
        lpszDevice: LPCWSTR,
        pDevmode: *mut DEVMODEW,
        dwFlags: DWORD,
        dwDesiredAccess: ACCESS_MASK,
        lpsa: LPSECURITY_ATTRIBUTES,
        ulHeapSize: ULONG,
        pvoid: PVOID,
    ) -> HDESK;
}
extern "C" {
    pub fn OpenDesktopA(
        lpszDesktop: LPCSTR,
        dwFlags: DWORD,
        fInherit: WINBOOL,
        dwDesiredAccess: ACCESS_MASK,
    ) -> HDESK;
}
extern "C" {
    pub fn OpenDesktopW(
        lpszDesktop: LPCWSTR,
        dwFlags: DWORD,
        fInherit: WINBOOL,
        dwDesiredAccess: ACCESS_MASK,
    ) -> HDESK;
}
extern "C" {
    pub fn OpenInputDesktop(
        dwFlags: DWORD,
        fInherit: WINBOOL,
        dwDesiredAccess: ACCESS_MASK,
    ) -> HDESK;
}
extern "C" {
    pub fn EnumDesktopsA(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCA, lParam: LPARAM)
        -> WINBOOL;
}
extern "C" {
    pub fn EnumDesktopsW(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCW, lParam: LPARAM)
        -> WINBOOL;
}
extern "C" {
    pub fn EnumDesktopWindows(hDesktop: HDESK, lpfn: WNDENUMPROC, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn SwitchDesktop(hDesktop: HDESK) -> WINBOOL;
}
extern "C" {
    pub fn SetThreadDesktop(hDesktop: HDESK) -> WINBOOL;
}
extern "C" {
    pub fn CloseDesktop(hDesktop: HDESK) -> WINBOOL;
}
extern "C" {
    pub fn GetThreadDesktop(dwThreadId: DWORD) -> HDESK;
}
extern "C" {
    pub fn CreateWindowStationA(
        lpwinsta: LPCSTR,
        dwFlags: DWORD,
        dwDesiredAccess: ACCESS_MASK,
        lpsa: LPSECURITY_ATTRIBUTES,
    ) -> HWINSTA;
}
extern "C" {
    pub fn CreateWindowStationW(
        lpwinsta: LPCWSTR,
        dwFlags: DWORD,
        dwDesiredAccess: ACCESS_MASK,
        lpsa: LPSECURITY_ATTRIBUTES,
    ) -> HWINSTA;
}
extern "C" {
    pub fn OpenWindowStationA(
        lpszWinSta: LPCSTR,
        fInherit: WINBOOL,
        dwDesiredAccess: ACCESS_MASK,
    ) -> HWINSTA;
}
extern "C" {
    pub fn OpenWindowStationW(
        lpszWinSta: LPCWSTR,
        fInherit: WINBOOL,
        dwDesiredAccess: ACCESS_MASK,
    ) -> HWINSTA;
}
extern "C" {
    pub fn EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn CloseWindowStation(hWinSta: HWINSTA) -> WINBOOL;
}
extern "C" {
    pub fn SetProcessWindowStation(hWinSta: HWINSTA) -> WINBOOL;
}
extern "C" {
    pub fn GetProcessWindowStation() -> HWINSTA;
}
extern "C" {
    pub fn SetUserObjectSecurity(
        hObj: HANDLE,
        pSIRequested: PSECURITY_INFORMATION,
        pSID: PSECURITY_DESCRIPTOR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetUserObjectSecurity(
        hObj: HANDLE,
        pSIRequested: PSECURITY_INFORMATION,
        pSID: PSECURITY_DESCRIPTOR,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagUSEROBJECTFLAGS {
    pub fInherit: WINBOOL,
    pub fReserved: WINBOOL,
    pub dwFlags: DWORD,
}
pub type USEROBJECTFLAGS = tagUSEROBJECTFLAGS;
pub type PUSEROBJECTFLAGS = *mut tagUSEROBJECTFLAGS;
extern "C" {
    pub fn GetUserObjectInformationA(
        hObj: HANDLE,
        nIndex: ::std::os::raw::c_int,
        pvInfo: PVOID,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetUserObjectInformationW(
        hObj: HANDLE,
        nIndex: ::std::os::raw::c_int,
        pvInfo: PVOID,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetUserObjectInformationA(
        hObj: HANDLE,
        nIndex: ::std::os::raw::c_int,
        pvInfo: PVOID,
        nLength: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetUserObjectInformationW(
        hObj: HANDLE,
        nIndex: ::std::os::raw::c_int,
        pvInfo: PVOID,
        nLength: DWORD,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagWNDCLASSEXA {
    pub cbSize: UINT,
    pub style: UINT,
    pub lpfnWndProc: WNDPROC,
    pub cbClsExtra: ::std::os::raw::c_int,
    pub cbWndExtra: ::std::os::raw::c_int,
    pub hInstance: HINSTANCE,
    pub hIcon: HICON,
    pub hCursor: HCURSOR,
    pub hbrBackground: HBRUSH,
    pub lpszMenuName: LPCSTR,
    pub lpszClassName: LPCSTR,
    pub hIconSm: HICON,
}
pub type WNDCLASSEXA = tagWNDCLASSEXA;
pub type PWNDCLASSEXA = *mut tagWNDCLASSEXA;
pub type NPWNDCLASSEXA = *mut tagWNDCLASSEXA;
pub type LPWNDCLASSEXA = *mut tagWNDCLASSEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagWNDCLASSEXW {
    pub cbSize: UINT,
    pub style: UINT,
    pub lpfnWndProc: WNDPROC,
    pub cbClsExtra: ::std::os::raw::c_int,
    pub cbWndExtra: ::std::os::raw::c_int,
    pub hInstance: HINSTANCE,
    pub hIcon: HICON,
    pub hCursor: HCURSOR,
    pub hbrBackground: HBRUSH,
    pub lpszMenuName: LPCWSTR,
    pub lpszClassName: LPCWSTR,
    pub hIconSm: HICON,
}
pub type WNDCLASSEXW = tagWNDCLASSEXW;
pub type PWNDCLASSEXW = *mut tagWNDCLASSEXW;
pub type NPWNDCLASSEXW = *mut tagWNDCLASSEXW;
pub type LPWNDCLASSEXW = *mut tagWNDCLASSEXW;
pub type WNDCLASSEX = WNDCLASSEXA;
pub type PWNDCLASSEX = PWNDCLASSEXA;
pub type NPWNDCLASSEX = NPWNDCLASSEXA;
pub type LPWNDCLASSEX = LPWNDCLASSEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagWNDCLASSA {
    pub style: UINT,
    pub lpfnWndProc: WNDPROC,
    pub cbClsExtra: ::std::os::raw::c_int,
    pub cbWndExtra: ::std::os::raw::c_int,
    pub hInstance: HINSTANCE,
    pub hIcon: HICON,
    pub hCursor: HCURSOR,
    pub hbrBackground: HBRUSH,
    pub lpszMenuName: LPCSTR,
    pub lpszClassName: LPCSTR,
}
pub type WNDCLASSA = tagWNDCLASSA;
pub type PWNDCLASSA = *mut tagWNDCLASSA;
pub type NPWNDCLASSA = *mut tagWNDCLASSA;
pub type LPWNDCLASSA = *mut tagWNDCLASSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagWNDCLASSW {
    pub style: UINT,
    pub lpfnWndProc: WNDPROC,
    pub cbClsExtra: ::std::os::raw::c_int,
    pub cbWndExtra: ::std::os::raw::c_int,
    pub hInstance: HINSTANCE,
    pub hIcon: HICON,
    pub hCursor: HCURSOR,
    pub hbrBackground: HBRUSH,
    pub lpszMenuName: LPCWSTR,
    pub lpszClassName: LPCWSTR,
}
pub type WNDCLASSW = tagWNDCLASSW;
pub type PWNDCLASSW = *mut tagWNDCLASSW;
pub type NPWNDCLASSW = *mut tagWNDCLASSW;
pub type LPWNDCLASSW = *mut tagWNDCLASSW;
pub type WNDCLASS = WNDCLASSA;
pub type PWNDCLASS = PWNDCLASSA;
pub type NPWNDCLASS = NPWNDCLASSA;
pub type LPWNDCLASS = LPWNDCLASSA;
extern "C" {
    pub fn IsHungAppWindow(hwnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn DisableProcessWindowsGhosting();
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMSG {
    pub hwnd: HWND,
    pub message: UINT,
    pub wParam: WPARAM,
    pub lParam: LPARAM,
    pub time: DWORD,
    pub pt: POINT,
}
pub type MSG = tagMSG;
pub type PMSG = *mut tagMSG;
pub type NPMSG = *mut tagMSG;
pub type LPMSG = *mut tagMSG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMINMAXINFO {
    pub ptReserved: POINT,
    pub ptMaxSize: POINT,
    pub ptMaxPosition: POINT,
    pub ptMinTrackSize: POINT,
    pub ptMaxTrackSize: POINT,
}
pub type MINMAXINFO = tagMINMAXINFO;
pub type PMINMAXINFO = *mut tagMINMAXINFO;
pub type LPMINMAXINFO = *mut tagMINMAXINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCOPYDATASTRUCT {
    pub dwData: ULONG_PTR,
    pub cbData: DWORD,
    pub lpData: PVOID,
}
pub type COPYDATASTRUCT = tagCOPYDATASTRUCT;
pub type PCOPYDATASTRUCT = *mut tagCOPYDATASTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMDINEXTMENU {
    pub hmenuIn: HMENU,
    pub hmenuNext: HMENU,
    pub hwndNext: HWND,
}
pub type MDINEXTMENU = tagMDINEXTMENU;
pub type PMDINEXTMENU = *mut tagMDINEXTMENU;
pub type LPMDINEXTMENU = *mut tagMDINEXTMENU;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct POWERBROADCAST_SETTING {
    pub PowerSetting: GUID,
    pub DataLength: DWORD,
    pub Data: [UCHAR; 1usize],
}
pub type PPOWERBROADCAST_SETTING = *mut POWERBROADCAST_SETTING;
extern "C" {
    pub fn RegisterWindowMessageA(lpString: LPCSTR) -> UINT;
}
extern "C" {
    pub fn RegisterWindowMessageW(lpString: LPCWSTR) -> UINT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagWINDOWPOS {
    pub hwnd: HWND,
    pub hwndInsertAfter: HWND,
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub cx: ::std::os::raw::c_int,
    pub cy: ::std::os::raw::c_int,
    pub flags: UINT,
}
pub type WINDOWPOS = tagWINDOWPOS;
pub type LPWINDOWPOS = *mut tagWINDOWPOS;
pub type PWINDOWPOS = *mut tagWINDOWPOS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNCCALCSIZE_PARAMS {
    pub rgrc: [RECT; 3usize],
    pub lppos: PWINDOWPOS,
}
pub type NCCALCSIZE_PARAMS = tagNCCALCSIZE_PARAMS;
pub type LPNCCALCSIZE_PARAMS = *mut tagNCCALCSIZE_PARAMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTRACKMOUSEEVENT {
    pub cbSize: DWORD,
    pub dwFlags: DWORD,
    pub hwndTrack: HWND,
    pub dwHoverTime: DWORD,
}
pub type TRACKMOUSEEVENT = tagTRACKMOUSEEVENT;
pub type LPTRACKMOUSEEVENT = *mut tagTRACKMOUSEEVENT;
extern "C" {
    pub fn TrackMouseEvent(lpEventTrack: LPTRACKMOUSEEVENT) -> WINBOOL;
}
extern "C" {
    pub fn DrawEdge(hdc: HDC, qrc: LPRECT, edge: UINT, grfFlags: UINT) -> WINBOOL;
}
extern "C" {
    pub fn DrawFrameControl(arg1: HDC, arg2: LPRECT, arg3: UINT, arg4: UINT) -> WINBOOL;
}
extern "C" {
    pub fn DrawCaption(hwnd: HWND, hdc: HDC, lprect: *const RECT, flags: UINT) -> WINBOOL;
}
extern "C" {
    pub fn DrawAnimatedRects(
        hwnd: HWND,
        idAni: ::std::os::raw::c_int,
        lprcFrom: *const RECT,
        lprcTo: *const RECT,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagACCEL {
    pub fVirt: BYTE,
    pub key: WORD,
    pub cmd: WORD,
}
pub type ACCEL = tagACCEL;
pub type LPACCEL = *mut tagACCEL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPAINTSTRUCT {
    pub hdc: HDC,
    pub fErase: WINBOOL,
    pub rcPaint: RECT,
    pub fRestore: WINBOOL,
    pub fIncUpdate: WINBOOL,
    pub rgbReserved: [BYTE; 32usize],
}
pub type PAINTSTRUCT = tagPAINTSTRUCT;
pub type PPAINTSTRUCT = *mut tagPAINTSTRUCT;
pub type NPPAINTSTRUCT = *mut tagPAINTSTRUCT;
pub type LPPAINTSTRUCT = *mut tagPAINTSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCREATESTRUCTA {
    pub lpCreateParams: LPVOID,
    pub hInstance: HINSTANCE,
    pub hMenu: HMENU,
    pub hwndParent: HWND,
    pub cy: ::std::os::raw::c_int,
    pub cx: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub x: ::std::os::raw::c_int,
    pub style: LONG,
    pub lpszName: LPCSTR,
    pub lpszClass: LPCSTR,
    pub dwExStyle: DWORD,
}
pub type CREATESTRUCTA = tagCREATESTRUCTA;
pub type LPCREATESTRUCTA = *mut tagCREATESTRUCTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCREATESTRUCTW {
    pub lpCreateParams: LPVOID,
    pub hInstance: HINSTANCE,
    pub hMenu: HMENU,
    pub hwndParent: HWND,
    pub cy: ::std::os::raw::c_int,
    pub cx: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub x: ::std::os::raw::c_int,
    pub style: LONG,
    pub lpszName: LPCWSTR,
    pub lpszClass: LPCWSTR,
    pub dwExStyle: DWORD,
}
pub type CREATESTRUCTW = tagCREATESTRUCTW;
pub type LPCREATESTRUCTW = *mut tagCREATESTRUCTW;
pub type CREATESTRUCT = CREATESTRUCTA;
pub type LPCREATESTRUCT = LPCREATESTRUCTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagWINDOWPLACEMENT {
    pub length: UINT,
    pub flags: UINT,
    pub showCmd: UINT,
    pub ptMinPosition: POINT,
    pub ptMaxPosition: POINT,
    pub rcNormalPosition: RECT,
}
pub type WINDOWPLACEMENT = tagWINDOWPLACEMENT;
pub type PWINDOWPLACEMENT = *mut WINDOWPLACEMENT;
pub type LPWINDOWPLACEMENT = *mut WINDOWPLACEMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNMHDR {
    pub hwndFrom: HWND,
    pub idFrom: UINT_PTR,
    pub code: UINT,
}
pub type NMHDR = tagNMHDR;
pub type LPNMHDR = *mut NMHDR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTYLESTRUCT {
    pub styleOld: DWORD,
    pub styleNew: DWORD,
}
pub type STYLESTRUCT = tagSTYLESTRUCT;
pub type LPSTYLESTRUCT = *mut tagSTYLESTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMEASUREITEMSTRUCT {
    pub CtlType: UINT,
    pub CtlID: UINT,
    pub itemID: UINT,
    pub itemWidth: UINT,
    pub itemHeight: UINT,
    pub itemData: ULONG_PTR,
}
pub type MEASUREITEMSTRUCT = tagMEASUREITEMSTRUCT;
pub type PMEASUREITEMSTRUCT = *mut tagMEASUREITEMSTRUCT;
pub type LPMEASUREITEMSTRUCT = *mut tagMEASUREITEMSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDRAWITEMSTRUCT {
    pub CtlType: UINT,
    pub CtlID: UINT,
    pub itemID: UINT,
    pub itemAction: UINT,
    pub itemState: UINT,
    pub hwndItem: HWND,
    pub hDC: HDC,
    pub rcItem: RECT,
    pub itemData: ULONG_PTR,
}
pub type DRAWITEMSTRUCT = tagDRAWITEMSTRUCT;
pub type PDRAWITEMSTRUCT = *mut tagDRAWITEMSTRUCT;
pub type LPDRAWITEMSTRUCT = *mut tagDRAWITEMSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDELETEITEMSTRUCT {
    pub CtlType: UINT,
    pub CtlID: UINT,
    pub itemID: UINT,
    pub hwndItem: HWND,
    pub itemData: ULONG_PTR,
}
pub type DELETEITEMSTRUCT = tagDELETEITEMSTRUCT;
pub type PDELETEITEMSTRUCT = *mut tagDELETEITEMSTRUCT;
pub type LPDELETEITEMSTRUCT = *mut tagDELETEITEMSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCOMPAREITEMSTRUCT {
    pub CtlType: UINT,
    pub CtlID: UINT,
    pub hwndItem: HWND,
    pub itemID1: UINT,
    pub itemData1: ULONG_PTR,
    pub itemID2: UINT,
    pub itemData2: ULONG_PTR,
    pub dwLocaleId: DWORD,
}
pub type COMPAREITEMSTRUCT = tagCOMPAREITEMSTRUCT;
pub type PCOMPAREITEMSTRUCT = *mut tagCOMPAREITEMSTRUCT;
pub type LPCOMPAREITEMSTRUCT = *mut tagCOMPAREITEMSTRUCT;
extern "C" {
    pub fn GetMessageA(
        lpMsg: LPMSG,
        hWnd: HWND,
        wMsgFilterMin: UINT,
        wMsgFilterMax: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetMessageW(
        lpMsg: LPMSG,
        hWnd: HWND,
        wMsgFilterMin: UINT,
        wMsgFilterMax: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn TranslateMessage(lpMsg: *const MSG) -> WINBOOL;
}
extern "C" {
    pub fn DispatchMessageA(lpMsg: *const MSG) -> LRESULT;
}
extern "C" {
    pub fn DispatchMessageW(lpMsg: *const MSG) -> LRESULT;
}
extern "C" {
    pub fn SetMessageQueue(cMessagesMax: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn PeekMessageA(
        lpMsg: LPMSG,
        hWnd: HWND,
        wMsgFilterMin: UINT,
        wMsgFilterMax: UINT,
        wRemoveMsg: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PeekMessageW(
        lpMsg: LPMSG,
        hWnd: HWND,
        wMsgFilterMin: UINT,
        wMsgFilterMax: UINT,
        wRemoveMsg: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn RegisterHotKey(
        hWnd: HWND,
        id: ::std::os::raw::c_int,
        fsModifiers: UINT,
        vk: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn UnregisterHotKey(hWnd: HWND, id: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn ExitWindowsEx(uFlags: UINT, dwReason: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SwapMouseButton(fSwap: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GetMessagePos() -> DWORD;
}
extern "C" {
    pub fn GetMessageTime() -> LONG;
}
extern "C" {
    pub fn GetMessageExtraInfo() -> LPARAM;
}
extern "C" {
    pub fn IsWow64Message() -> WINBOOL;
}
extern "C" {
    pub fn SetMessageExtraInfo(lParam: LPARAM) -> LPARAM;
}
extern "C" {
    pub fn SendMessageA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn SendMessageW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn SendMessageTimeoutA(
        hWnd: HWND,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
        fuFlags: UINT,
        uTimeout: UINT,
        lpdwResult: PDWORD_PTR,
    ) -> LRESULT;
}
extern "C" {
    pub fn SendMessageTimeoutW(
        hWnd: HWND,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
        fuFlags: UINT,
        uTimeout: UINT,
        lpdwResult: PDWORD_PTR,
    ) -> LRESULT;
}
extern "C" {
    pub fn SendNotifyMessageA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn SendNotifyMessageW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn SendMessageCallbackA(
        hWnd: HWND,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
        lpResultCallBack: SENDASYNCPROC,
        dwData: ULONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SendMessageCallbackW(
        hWnd: HWND,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
        lpResultCallBack: SENDASYNCPROC,
        dwData: ULONG_PTR,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BSMINFO {
    pub cbSize: UINT,
    pub hdesk: HDESK,
    pub hwnd: HWND,
    pub luid: LUID,
}
pub type PBSMINFO = *mut BSMINFO;
extern "C" {
    pub fn BroadcastSystemMessageExA(
        flags: DWORD,
        lpInfo: LPDWORD,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
        pbsmInfo: PBSMINFO,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn BroadcastSystemMessageExW(
        flags: DWORD,
        lpInfo: LPDWORD,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
        pbsmInfo: PBSMINFO,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn BroadcastSystemMessageA(
        flags: DWORD,
        lpInfo: LPDWORD,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn BroadcastSystemMessageW(
        flags: DWORD,
        lpInfo: LPDWORD,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_long;
}
pub type HDEVNOTIFY = PVOID;
pub type PHDEVNOTIFY = *mut HDEVNOTIFY;
pub type HPOWERNOTIFY = HANDLE;
pub type PHPOWERNOTIFY = *mut HPOWERNOTIFY;
extern "C" {
    pub fn RegisterPowerSettingNotification(
        hRecipient: HANDLE,
        PowerSettingGuid: LPCGUID,
        Flags: DWORD,
    ) -> HPOWERNOTIFY;
}
extern "C" {
    pub fn UnregisterPowerSettingNotification(Handle: HPOWERNOTIFY) -> WINBOOL;
}
extern "C" {
    pub fn RegisterSuspendResumeNotification(hRecipient: HANDLE, Flags: DWORD) -> HPOWERNOTIFY;
}
extern "C" {
    pub fn UnregisterSuspendResumeNotification(Handle: HPOWERNOTIFY) -> WINBOOL;
}
extern "C" {
    pub fn PostMessageA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn PostMessageW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn PostThreadMessageA(
        idThread: DWORD,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PostThreadMessageW(
        idThread: DWORD,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AttachThreadInput(idAttach: DWORD, idAttachTo: DWORD, fAttach: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn ReplyMessage(lResult: LRESULT) -> WINBOOL;
}
extern "C" {
    pub fn WaitMessage() -> WINBOOL;
}
extern "C" {
    pub fn WaitForInputIdle(hProcess: HANDLE, dwMilliseconds: DWORD) -> DWORD;
}
extern "C" {
    pub fn DefWindowProcA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn DefWindowProcW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn PostQuitMessage(nExitCode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn InSendMessage() -> WINBOOL;
}
extern "C" {
    pub fn InSendMessageEx(lpReserved: LPVOID) -> DWORD;
}
extern "C" {
    pub fn GetDoubleClickTime() -> UINT;
}
extern "C" {
    pub fn SetDoubleClickTime(arg1: UINT) -> WINBOOL;
}
extern "C" {
    pub fn RegisterClassA(lpWndClass: *const WNDCLASSA) -> ATOM;
}
extern "C" {
    pub fn RegisterClassW(lpWndClass: *const WNDCLASSW) -> ATOM;
}
extern "C" {
    pub fn UnregisterClassA(lpClassName: LPCSTR, hInstance: HINSTANCE) -> WINBOOL;
}
extern "C" {
    pub fn UnregisterClassW(lpClassName: LPCWSTR, hInstance: HINSTANCE) -> WINBOOL;
}
extern "C" {
    pub fn GetClassInfoA(
        hInstance: HINSTANCE,
        lpClassName: LPCSTR,
        lpWndClass: LPWNDCLASSA,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetClassInfoW(
        hInstance: HINSTANCE,
        lpClassName: LPCWSTR,
        lpWndClass: LPWNDCLASSW,
    ) -> WINBOOL;
}
extern "C" {
    pub fn RegisterClassExA(arg1: *const WNDCLASSEXA) -> ATOM;
}
extern "C" {
    pub fn RegisterClassExW(arg1: *const WNDCLASSEXW) -> ATOM;
}
extern "C" {
    pub fn GetClassInfoExA(
        hInstance: HINSTANCE,
        lpszClass: LPCSTR,
        lpwcx: LPWNDCLASSEXA,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetClassInfoExW(
        hInstance: HINSTANCE,
        lpszClass: LPCWSTR,
        lpwcx: LPWNDCLASSEXW,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CallWindowProcA(
        lpPrevWndFunc: WNDPROC,
        hWnd: HWND,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> LRESULT;
}
extern "C" {
    pub fn CallWindowProcW(
        lpPrevWndFunc: WNDPROC,
        hWnd: HWND,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> LRESULT;
}
extern "C" {
    pub fn RegisterDeviceNotificationA(
        hRecipient: HANDLE,
        NotificationFilter: LPVOID,
        Flags: DWORD,
    ) -> HDEVNOTIFY;
}
extern "C" {
    pub fn RegisterDeviceNotificationW(
        hRecipient: HANDLE,
        NotificationFilter: LPVOID,
        Flags: DWORD,
    ) -> HDEVNOTIFY;
}
extern "C" {
    pub fn UnregisterDeviceNotification(Handle: HDEVNOTIFY) -> WINBOOL;
}
pub type PREGISTERCLASSNAMEW =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPCWSTR) -> BOOLEAN>;
extern "C" {
    pub fn CreateWindowExA(
        dwExStyle: DWORD,
        lpClassName: LPCSTR,
        lpWindowName: LPCSTR,
        dwStyle: DWORD,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
        hWndParent: HWND,
        hMenu: HMENU,
        hInstance: HINSTANCE,
        lpParam: LPVOID,
    ) -> HWND;
}
extern "C" {
    pub fn CreateWindowExW(
        dwExStyle: DWORD,
        lpClassName: LPCWSTR,
        lpWindowName: LPCWSTR,
        dwStyle: DWORD,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
        hWndParent: HWND,
        hMenu: HMENU,
        hInstance: HINSTANCE,
        lpParam: LPVOID,
    ) -> HWND;
}
extern "C" {
    pub fn IsWindow(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn IsMenu(hMenu: HMENU) -> WINBOOL;
}
extern "C" {
    pub fn IsChild(hWndParent: HWND, hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn DestroyWindow(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn ShowWindow(hWnd: HWND, nCmdShow: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn AnimateWindow(hWnd: HWND, dwTime: DWORD, dwFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn UpdateLayeredWindow(
        hWnd: HWND,
        hdcDst: HDC,
        pptDst: *mut POINT,
        psize: *mut SIZE,
        hdcSrc: HDC,
        pptSrc: *mut POINT,
        crKey: COLORREF,
        pblend: *mut BLENDFUNCTION,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagUPDATELAYEREDWINDOWINFO {
    pub cbSize: DWORD,
    pub hdcDst: HDC,
    pub pptDst: *const POINT,
    pub psize: *const SIZE,
    pub hdcSrc: HDC,
    pub pptSrc: *const POINT,
    pub crKey: COLORREF,
    pub pblend: *const BLENDFUNCTION,
    pub dwFlags: DWORD,
    pub prcDirty: *const RECT,
}
pub type UPDATELAYEREDWINDOWINFO = tagUPDATELAYEREDWINDOWINFO;
pub type PUPDATELAYEREDWINDOWINFO = *mut tagUPDATELAYEREDWINDOWINFO;
extern "C" {
    pub fn UpdateLayeredWindowIndirect(
        hWnd: HWND,
        pULWInfo: *const UPDATELAYEREDWINDOWINFO,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetLayeredWindowAttributes(
        hwnd: HWND,
        pcrKey: *mut COLORREF,
        pbAlpha: *mut BYTE,
        pdwFlags: *mut DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PrintWindow(hwnd: HWND, hdcBlt: HDC, nFlags: UINT) -> WINBOOL;
}
extern "C" {
    pub fn SetLayeredWindowAttributes(
        hwnd: HWND,
        crKey: COLORREF,
        bAlpha: BYTE,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct FLASHWINFO {
    pub cbSize: UINT,
    pub hwnd: HWND,
    pub dwFlags: DWORD,
    pub uCount: UINT,
    pub dwTimeout: DWORD,
}
pub type PFLASHWINFO = *mut FLASHWINFO;
extern "C" {
    pub fn ShowWindowAsync(hWnd: HWND, nCmdShow: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn FlashWindow(hWnd: HWND, bInvert: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn FlashWindowEx(pfwi: PFLASHWINFO) -> WINBOOL;
}
extern "C" {
    pub fn ShowOwnedPopups(hWnd: HWND, fShow: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn OpenIcon(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn CloseWindow(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn MoveWindow(
        hWnd: HWND,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
        bRepaint: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetWindowPos(
        hWnd: HWND,
        hWndInsertAfter: HWND,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
        uFlags: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetWindowPlacement(hWnd: HWND, lpwndpl: *mut WINDOWPLACEMENT) -> WINBOOL;
}
extern "C" {
    pub fn SetWindowPlacement(hWnd: HWND, lpwndpl: *const WINDOWPLACEMENT) -> WINBOOL;
}
extern "C" {
    pub fn BeginDeferWindowPos(nNumWindows: ::std::os::raw::c_int) -> HDWP;
}
extern "C" {
    pub fn DeferWindowPos(
        hWinPosInfo: HDWP,
        hWnd: HWND,
        hWndInsertAfter: HWND,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
        uFlags: UINT,
    ) -> HDWP;
}
extern "C" {
    pub fn EndDeferWindowPos(hWinPosInfo: HDWP) -> WINBOOL;
}
extern "C" {
    pub fn IsWindowVisible(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn IsIconic(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn AnyPopup() -> WINBOOL;
}
extern "C" {
    pub fn BringWindowToTop(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn IsZoomed(hWnd: HWND) -> WINBOOL;
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct DLGTEMPLATE {
    pub style: DWORD,
    pub dwExtendedStyle: DWORD,
    pub cdit: WORD,
    pub x: ::std::os::raw::c_short,
    pub y: ::std::os::raw::c_short,
    pub cx: ::std::os::raw::c_short,
    pub cy: ::std::os::raw::c_short,
}
pub type LPDLGTEMPLATEA = *mut DLGTEMPLATE;
pub type LPDLGTEMPLATEW = *mut DLGTEMPLATE;
pub type LPDLGTEMPLATE = LPDLGTEMPLATEA;
pub type LPCDLGTEMPLATEA = *const DLGTEMPLATE;
pub type LPCDLGTEMPLATEW = *const DLGTEMPLATE;
pub type LPCDLGTEMPLATE = LPCDLGTEMPLATEA;
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct DLGITEMTEMPLATE {
    pub style: DWORD,
    pub dwExtendedStyle: DWORD,
    pub x: ::std::os::raw::c_short,
    pub y: ::std::os::raw::c_short,
    pub cx: ::std::os::raw::c_short,
    pub cy: ::std::os::raw::c_short,
    pub id: WORD,
}
pub type PDLGITEMTEMPLATEA = *mut DLGITEMTEMPLATE;
pub type PDLGITEMTEMPLATEW = *mut DLGITEMTEMPLATE;
pub type PDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
pub type LPDLGITEMTEMPLATEA = *mut DLGITEMTEMPLATE;
pub type LPDLGITEMTEMPLATEW = *mut DLGITEMTEMPLATE;
pub type LPDLGITEMTEMPLATE = LPDLGITEMTEMPLATEA;
extern "C" {
    pub fn CreateDialogParamA(
        hInstance: HINSTANCE,
        lpTemplateName: LPCSTR,
        hWndParent: HWND,
        lpDialogFunc: DLGPROC,
        dwInitParam: LPARAM,
    ) -> HWND;
}
extern "C" {
    pub fn CreateDialogParamW(
        hInstance: HINSTANCE,
        lpTemplateName: LPCWSTR,
        hWndParent: HWND,
        lpDialogFunc: DLGPROC,
        dwInitParam: LPARAM,
    ) -> HWND;
}
extern "C" {
    pub fn CreateDialogIndirectParamA(
        hInstance: HINSTANCE,
        lpTemplate: LPCDLGTEMPLATEA,
        hWndParent: HWND,
        lpDialogFunc: DLGPROC,
        dwInitParam: LPARAM,
    ) -> HWND;
}
extern "C" {
    pub fn CreateDialogIndirectParamW(
        hInstance: HINSTANCE,
        lpTemplate: LPCDLGTEMPLATEW,
        hWndParent: HWND,
        lpDialogFunc: DLGPROC,
        dwInitParam: LPARAM,
    ) -> HWND;
}
extern "C" {
    pub fn DialogBoxParamA(
        hInstance: HINSTANCE,
        lpTemplateName: LPCSTR,
        hWndParent: HWND,
        lpDialogFunc: DLGPROC,
        dwInitParam: LPARAM,
    ) -> INT_PTR;
}
extern "C" {
    pub fn DialogBoxParamW(
        hInstance: HINSTANCE,
        lpTemplateName: LPCWSTR,
        hWndParent: HWND,
        lpDialogFunc: DLGPROC,
        dwInitParam: LPARAM,
    ) -> INT_PTR;
}
extern "C" {
    pub fn DialogBoxIndirectParamA(
        hInstance: HINSTANCE,
        hDialogTemplate: LPCDLGTEMPLATEA,
        hWndParent: HWND,
        lpDialogFunc: DLGPROC,
        dwInitParam: LPARAM,
    ) -> INT_PTR;
}
extern "C" {
    pub fn DialogBoxIndirectParamW(
        hInstance: HINSTANCE,
        hDialogTemplate: LPCDLGTEMPLATEW,
        hWndParent: HWND,
        lpDialogFunc: DLGPROC,
        dwInitParam: LPARAM,
    ) -> INT_PTR;
}
extern "C" {
    pub fn EndDialog(hDlg: HWND, nResult: INT_PTR) -> WINBOOL;
}
extern "C" {
    pub fn GetDlgItem(hDlg: HWND, nIDDlgItem: ::std::os::raw::c_int) -> HWND;
}
extern "C" {
    pub fn SetDlgItemInt(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        uValue: UINT,
        bSigned: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetDlgItemInt(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        lpTranslated: *mut WINBOOL,
        bSigned: WINBOOL,
    ) -> UINT;
}
extern "C" {
    pub fn SetDlgItemTextA(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        lpString: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetDlgItemTextW(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        lpString: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetDlgItemTextA(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        lpString: LPSTR,
        cchMax: ::std::os::raw::c_int,
    ) -> UINT;
}
extern "C" {
    pub fn GetDlgItemTextW(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        lpString: LPWSTR,
        cchMax: ::std::os::raw::c_int,
    ) -> UINT;
}
extern "C" {
    pub fn CheckDlgButton(hDlg: HWND, nIDButton: ::std::os::raw::c_int, uCheck: UINT) -> WINBOOL;
}
extern "C" {
    pub fn CheckRadioButton(
        hDlg: HWND,
        nIDFirstButton: ::std::os::raw::c_int,
        nIDLastButton: ::std::os::raw::c_int,
        nIDCheckButton: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn IsDlgButtonChecked(hDlg: HWND, nIDButton: ::std::os::raw::c_int) -> UINT;
}
extern "C" {
    pub fn SendDlgItemMessageA(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> LRESULT;
}
extern "C" {
    pub fn SendDlgItemMessageW(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> LRESULT;
}
extern "C" {
    pub fn GetNextDlgGroupItem(hDlg: HWND, hCtl: HWND, bPrevious: WINBOOL) -> HWND;
}
extern "C" {
    pub fn GetNextDlgTabItem(hDlg: HWND, hCtl: HWND, bPrevious: WINBOOL) -> HWND;
}
extern "C" {
    pub fn GetDlgCtrlID(hWnd: HWND) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetDialogBaseUnits() -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn DefDlgProcA(hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn DefDlgProcW(hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn CallMsgFilterA(lpMsg: LPMSG, nCode: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn CallMsgFilterW(lpMsg: LPMSG, nCode: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn OpenClipboard(hWndNewOwner: HWND) -> WINBOOL;
}
extern "C" {
    pub fn CloseClipboard() -> WINBOOL;
}
extern "C" {
    pub fn GetClipboardSequenceNumber() -> DWORD;
}
extern "C" {
    pub fn GetClipboardOwner() -> HWND;
}
extern "C" {
    pub fn SetClipboardViewer(hWndNewViewer: HWND) -> HWND;
}
extern "C" {
    pub fn GetClipboardViewer() -> HWND;
}
extern "C" {
    pub fn ChangeClipboardChain(hWndRemove: HWND, hWndNewNext: HWND) -> WINBOOL;
}
extern "C" {
    pub fn SetClipboardData(uFormat: UINT, hMem: HANDLE) -> HANDLE;
}
extern "C" {
    pub fn GetClipboardData(uFormat: UINT) -> HANDLE;
}
extern "C" {
    pub fn RegisterClipboardFormatA(lpszFormat: LPCSTR) -> UINT;
}
extern "C" {
    pub fn RegisterClipboardFormatW(lpszFormat: LPCWSTR) -> UINT;
}
extern "C" {
    pub fn CountClipboardFormats() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumClipboardFormats(format: UINT) -> UINT;
}
extern "C" {
    pub fn GetClipboardFormatNameA(
        format: UINT,
        lpszFormatName: LPSTR,
        cchMaxCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetClipboardFormatNameW(
        format: UINT,
        lpszFormatName: LPWSTR,
        cchMaxCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EmptyClipboard() -> WINBOOL;
}
extern "C" {
    pub fn IsClipboardFormatAvailable(format: UINT) -> WINBOOL;
}
extern "C" {
    pub fn GetPriorityClipboardFormat(
        paFormatPriorityList: *mut UINT,
        cFormats: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetOpenClipboardWindow() -> HWND;
}
extern "C" {
    pub fn CharToOemA(lpszSrc: LPCSTR, lpszDst: LPSTR) -> WINBOOL;
}
extern "C" {
    pub fn CharToOemW(lpszSrc: LPCWSTR, lpszDst: LPSTR) -> WINBOOL;
}
extern "C" {
    pub fn OemToCharA(lpszSrc: LPCSTR, lpszDst: LPSTR) -> WINBOOL;
}
extern "C" {
    pub fn OemToCharW(lpszSrc: LPCSTR, lpszDst: LPWSTR) -> WINBOOL;
}
extern "C" {
    pub fn CharToOemBuffA(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CharToOemBuffW(lpszSrc: LPCWSTR, lpszDst: LPSTR, cchDstLength: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn OemToCharBuffA(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn OemToCharBuffW(lpszSrc: LPCSTR, lpszDst: LPWSTR, cchDstLength: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn CharUpperA(lpsz: LPSTR) -> LPSTR;
}
extern "C" {
    pub fn CharUpperW(lpsz: LPWSTR) -> LPWSTR;
}
extern "C" {
    pub fn CharUpperBuffA(lpsz: LPSTR, cchLength: DWORD) -> DWORD;
}
extern "C" {
    pub fn CharUpperBuffW(lpsz: LPWSTR, cchLength: DWORD) -> DWORD;
}
extern "C" {
    pub fn CharLowerA(lpsz: LPSTR) -> LPSTR;
}
extern "C" {
    pub fn CharLowerW(lpsz: LPWSTR) -> LPWSTR;
}
extern "C" {
    pub fn CharLowerBuffA(lpsz: LPSTR, cchLength: DWORD) -> DWORD;
}
extern "C" {
    pub fn CharLowerBuffW(lpsz: LPWSTR, cchLength: DWORD) -> DWORD;
}
extern "C" {
    pub fn CharNextA(lpsz: LPCSTR) -> LPSTR;
}
extern "C" {
    pub fn CharNextW(lpsz: LPCWSTR) -> LPWSTR;
}
extern "C" {
    pub fn CharPrevA(lpszStart: LPCSTR, lpszCurrent: LPCSTR) -> LPSTR;
}
extern "C" {
    pub fn CharPrevW(lpszStart: LPCWSTR, lpszCurrent: LPCWSTR) -> LPWSTR;
}
extern "C" {
    pub fn CharNextExA(CodePage: WORD, lpCurrentChar: LPCSTR, dwFlags: DWORD) -> LPSTR;
}
extern "C" {
    pub fn CharPrevExA(
        CodePage: WORD,
        lpStart: LPCSTR,
        lpCurrentChar: LPCSTR,
        dwFlags: DWORD,
    ) -> LPSTR;
}
extern "C" {
    pub fn IsCharAlphaA(ch: CHAR) -> WINBOOL;
}
extern "C" {
    pub fn IsCharAlphaW(ch: WCHAR) -> WINBOOL;
}
extern "C" {
    pub fn IsCharAlphaNumericA(ch: CHAR) -> WINBOOL;
}
extern "C" {
    pub fn IsCharAlphaNumericW(ch: WCHAR) -> WINBOOL;
}
extern "C" {
    pub fn IsCharUpperA(ch: CHAR) -> WINBOOL;
}
extern "C" {
    pub fn IsCharUpperW(ch: WCHAR) -> WINBOOL;
}
extern "C" {
    pub fn IsCharLowerA(ch: CHAR) -> WINBOOL;
}
extern "C" {
    pub fn IsCharLowerW(ch: WCHAR) -> WINBOOL;
}
extern "C" {
    pub fn SetFocus(hWnd: HWND) -> HWND;
}
extern "C" {
    pub fn GetActiveWindow() -> HWND;
}
extern "C" {
    pub fn GetFocus() -> HWND;
}
extern "C" {
    pub fn GetKBCodePage() -> UINT;
}
extern "C" {
    pub fn GetKeyState(nVirtKey: ::std::os::raw::c_int) -> SHORT;
}
extern "C" {
    pub fn GetAsyncKeyState(vKey: ::std::os::raw::c_int) -> SHORT;
}
extern "C" {
    pub fn GetKeyboardState(lpKeyState: PBYTE) -> WINBOOL;
}
extern "C" {
    pub fn SetKeyboardState(lpKeyState: LPBYTE) -> WINBOOL;
}
extern "C" {
    pub fn GetKeyNameTextA(
        lParam: LONG,
        lpString: LPSTR,
        cchSize: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetKeyNameTextW(
        lParam: LONG,
        lpString: LPWSTR,
        cchSize: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetKeyboardType(nTypeFlag: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ToAscii(
        uVirtKey: UINT,
        uScanCode: UINT,
        lpKeyState: *const BYTE,
        lpChar: LPWORD,
        uFlags: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ToAsciiEx(
        uVirtKey: UINT,
        uScanCode: UINT,
        lpKeyState: *const BYTE,
        lpChar: LPWORD,
        uFlags: UINT,
        dwhkl: HKL,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ToUnicode(
        wVirtKey: UINT,
        wScanCode: UINT,
        lpKeyState: *const BYTE,
        pwszBuff: LPWSTR,
        cchBuff: ::std::os::raw::c_int,
        wFlags: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn OemKeyScan(wOemChar: WORD) -> DWORD;
}
extern "C" {
    pub fn VkKeyScanA(ch: CHAR) -> SHORT;
}
extern "C" {
    pub fn VkKeyScanW(ch: WCHAR) -> SHORT;
}
extern "C" {
    pub fn VkKeyScanExA(ch: CHAR, dwhkl: HKL) -> SHORT;
}
extern "C" {
    pub fn VkKeyScanExW(ch: WCHAR, dwhkl: HKL) -> SHORT;
}
extern "C" {
    pub fn keybd_event(bVk: BYTE, bScan: BYTE, dwFlags: DWORD, dwExtraInfo: ULONG_PTR);
}
extern "C" {
    pub fn mouse_event(dwFlags: DWORD, dx: DWORD, dy: DWORD, dwData: DWORD, dwExtraInfo: ULONG_PTR);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMOUSEINPUT {
    pub dx: LONG,
    pub dy: LONG,
    pub mouseData: DWORD,
    pub dwFlags: DWORD,
    pub time: DWORD,
    pub dwExtraInfo: ULONG_PTR,
}
pub type MOUSEINPUT = tagMOUSEINPUT;
pub type PMOUSEINPUT = *mut tagMOUSEINPUT;
pub type LPMOUSEINPUT = *mut tagMOUSEINPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagKEYBDINPUT {
    pub wVk: WORD,
    pub wScan: WORD,
    pub dwFlags: DWORD,
    pub time: DWORD,
    pub dwExtraInfo: ULONG_PTR,
}
pub type KEYBDINPUT = tagKEYBDINPUT;
pub type PKEYBDINPUT = *mut tagKEYBDINPUT;
pub type LPKEYBDINPUT = *mut tagKEYBDINPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagHARDWAREINPUT {
    pub uMsg: DWORD,
    pub wParamL: WORD,
    pub wParamH: WORD,
}
pub type HARDWAREINPUT = tagHARDWAREINPUT;
pub type PHARDWAREINPUT = *mut tagHARDWAREINPUT;
pub type LPHARDWAREINPUT = *mut tagHARDWAREINPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagINPUT {
    pub type_: DWORD,
    pub __bindgen_anon_1: tagINPUT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagINPUT__bindgen_ty_1 {
    pub mi: MOUSEINPUT,
    pub ki: KEYBDINPUT,
    pub hi: HARDWAREINPUT,
    _bindgen_union_align: [u64; 4usize],
}
pub type INPUT = tagINPUT;
pub type PINPUT = *mut tagINPUT;
pub type LPINPUT = *mut tagINPUT;
extern "C" {
    pub fn SendInput(cInputs: UINT, pInputs: LPINPUT, cbSize: ::std::os::raw::c_int) -> UINT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLASTINPUTINFO {
    pub cbSize: UINT,
    pub dwTime: DWORD,
}
pub type LASTINPUTINFO = tagLASTINPUTINFO;
pub type PLASTINPUTINFO = *mut tagLASTINPUTINFO;
extern "C" {
    pub fn GetLastInputInfo(plii: PLASTINPUTINFO) -> WINBOOL;
}
extern "C" {
    pub fn MapVirtualKeyA(uCode: UINT, uMapType: UINT) -> UINT;
}
extern "C" {
    pub fn MapVirtualKeyW(uCode: UINT, uMapType: UINT) -> UINT;
}
extern "C" {
    pub fn MapVirtualKeyExA(uCode: UINT, uMapType: UINT, dwhkl: HKL) -> UINT;
}
extern "C" {
    pub fn MapVirtualKeyExW(uCode: UINT, uMapType: UINT, dwhkl: HKL) -> UINT;
}
extern "C" {
    pub fn GetInputState() -> WINBOOL;
}
extern "C" {
    pub fn GetQueueStatus(flags: UINT) -> DWORD;
}
extern "C" {
    pub fn GetCapture() -> HWND;
}
extern "C" {
    pub fn SetCapture(hWnd: HWND) -> HWND;
}
extern "C" {
    pub fn ReleaseCapture() -> WINBOOL;
}
extern "C" {
    pub fn MsgWaitForMultipleObjects(
        nCount: DWORD,
        pHandles: *const HANDLE,
        fWaitAll: WINBOOL,
        dwMilliseconds: DWORD,
        dwWakeMask: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn MsgWaitForMultipleObjectsEx(
        nCount: DWORD,
        pHandles: *const HANDLE,
        dwMilliseconds: DWORD,
        dwWakeMask: DWORD,
        dwFlags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn SetTimer(
        hWnd: HWND,
        nIDEvent: UINT_PTR,
        uElapse: UINT,
        lpTimerFunc: TIMERPROC,
    ) -> UINT_PTR;
}
extern "C" {
    pub fn KillTimer(hWnd: HWND, uIDEvent: UINT_PTR) -> WINBOOL;
}
extern "C" {
    pub fn IsWindowUnicode(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn EnableWindow(hWnd: HWND, bEnable: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn IsWindowEnabled(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn LoadAcceleratorsA(hInstance: HINSTANCE, lpTableName: LPCSTR) -> HACCEL;
}
extern "C" {
    pub fn LoadAcceleratorsW(hInstance: HINSTANCE, lpTableName: LPCWSTR) -> HACCEL;
}
extern "C" {
    pub fn CreateAcceleratorTableA(paccel: LPACCEL, cAccel: ::std::os::raw::c_int) -> HACCEL;
}
extern "C" {
    pub fn CreateAcceleratorTableW(paccel: LPACCEL, cAccel: ::std::os::raw::c_int) -> HACCEL;
}
extern "C" {
    pub fn DestroyAcceleratorTable(hAccel: HACCEL) -> WINBOOL;
}
extern "C" {
    pub fn CopyAcceleratorTableA(
        hAccelSrc: HACCEL,
        lpAccelDst: LPACCEL,
        cAccelEntries: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CopyAcceleratorTableW(
        hAccelSrc: HACCEL,
        lpAccelDst: LPACCEL,
        cAccelEntries: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn TranslateAcceleratorA(
        hWnd: HWND,
        hAccTable: HACCEL,
        lpMsg: LPMSG,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn TranslateAcceleratorW(
        hWnd: HWND,
        hAccTable: HACCEL,
        lpMsg: LPMSG,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetSystemMetrics(nIndex: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn LoadMenuA(hInstance: HINSTANCE, lpMenuName: LPCSTR) -> HMENU;
}
extern "C" {
    pub fn LoadMenuW(hInstance: HINSTANCE, lpMenuName: LPCWSTR) -> HMENU;
}
extern "C" {
    pub fn LoadMenuIndirectA(lpMenuTemplate: *const MENUTEMPLATEA) -> HMENU;
}
extern "C" {
    pub fn LoadMenuIndirectW(lpMenuTemplate: *const MENUTEMPLATEW) -> HMENU;
}
extern "C" {
    pub fn GetMenu(hWnd: HWND) -> HMENU;
}
extern "C" {
    pub fn SetMenu(hWnd: HWND, hMenu: HMENU) -> WINBOOL;
}
extern "C" {
    pub fn ChangeMenuA(
        hMenu: HMENU,
        cmd: UINT,
        lpszNewItem: LPCSTR,
        cmdInsert: UINT,
        flags: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ChangeMenuW(
        hMenu: HMENU,
        cmd: UINT,
        lpszNewItem: LPCWSTR,
        cmdInsert: UINT,
        flags: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn HiliteMenuItem(hWnd: HWND, hMenu: HMENU, uIDHiliteItem: UINT, uHilite: UINT) -> WINBOOL;
}
extern "C" {
    pub fn GetMenuStringA(
        hMenu: HMENU,
        uIDItem: UINT,
        lpString: LPSTR,
        cchMax: ::std::os::raw::c_int,
        flags: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMenuStringW(
        hMenu: HMENU,
        uIDItem: UINT,
        lpString: LPWSTR,
        cchMax: ::std::os::raw::c_int,
        flags: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetMenuState(hMenu: HMENU, uId: UINT, uFlags: UINT) -> UINT;
}
extern "C" {
    pub fn DrawMenuBar(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn GetSystemMenu(hWnd: HWND, bRevert: WINBOOL) -> HMENU;
}
extern "C" {
    pub fn CreateMenu() -> HMENU;
}
extern "C" {
    pub fn CreatePopupMenu() -> HMENU;
}
extern "C" {
    pub fn DestroyMenu(hMenu: HMENU) -> WINBOOL;
}
extern "C" {
    pub fn CheckMenuItem(hMenu: HMENU, uIDCheckItem: UINT, uCheck: UINT) -> DWORD;
}
extern "C" {
    pub fn EnableMenuItem(hMenu: HMENU, uIDEnableItem: UINT, uEnable: UINT) -> WINBOOL;
}
extern "C" {
    pub fn GetSubMenu(hMenu: HMENU, nPos: ::std::os::raw::c_int) -> HMENU;
}
extern "C" {
    pub fn GetMenuItemID(hMenu: HMENU, nPos: ::std::os::raw::c_int) -> UINT;
}
extern "C" {
    pub fn GetMenuItemCount(hMenu: HMENU) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn InsertMenuA(
        hMenu: HMENU,
        uPosition: UINT,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn InsertMenuW(
        hMenu: HMENU,
        uPosition: UINT,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AppendMenuA(
        hMenu: HMENU,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AppendMenuW(
        hMenu: HMENU,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ModifyMenuA(
        hMnu: HMENU,
        uPosition: UINT,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ModifyMenuW(
        hMnu: HMENU,
        uPosition: UINT,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn RemoveMenu(hMenu: HMENU, uPosition: UINT, uFlags: UINT) -> WINBOOL;
}
extern "C" {
    pub fn DeleteMenu(hMenu: HMENU, uPosition: UINT, uFlags: UINT) -> WINBOOL;
}
extern "C" {
    pub fn SetMenuItemBitmaps(
        hMenu: HMENU,
        uPosition: UINT,
        uFlags: UINT,
        hBitmapUnchecked: HBITMAP,
        hBitmapChecked: HBITMAP,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetMenuCheckMarkDimensions() -> LONG;
}
extern "C" {
    pub fn TrackPopupMenu(
        hMenu: HMENU,
        uFlags: UINT,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        nReserved: ::std::os::raw::c_int,
        hWnd: HWND,
        prcRect: *const RECT,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTPMPARAMS {
    pub cbSize: UINT,
    pub rcExclude: RECT,
}
pub type TPMPARAMS = tagTPMPARAMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMENUINFO {
    pub cbSize: DWORD,
    pub fMask: DWORD,
    pub dwStyle: DWORD,
    pub cyMax: UINT,
    pub hbrBack: HBRUSH,
    pub dwContextHelpID: DWORD,
    pub dwMenuData: ULONG_PTR,
}
pub type MENUINFO = tagMENUINFO;
pub type LPMENUINFO = *mut tagMENUINFO;
pub type LPTPMPARAMS = *mut TPMPARAMS;
pub type LPCMENUINFO = *const MENUINFO;
extern "C" {
    pub fn TrackPopupMenuEx(
        arg1: HMENU,
        arg2: UINT,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::os::raw::c_int,
        arg5: HWND,
        arg6: LPTPMPARAMS,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetMenuInfo(arg1: HMENU, arg2: LPMENUINFO) -> WINBOOL;
}
extern "C" {
    pub fn SetMenuInfo(arg1: HMENU, arg2: LPCMENUINFO) -> WINBOOL;
}
extern "C" {
    pub fn EndMenu() -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMENUGETOBJECTINFO {
    pub dwFlags: DWORD,
    pub uPos: UINT,
    pub hmenu: HMENU,
    pub riid: PVOID,
    pub pvObj: PVOID,
}
pub type MENUGETOBJECTINFO = tagMENUGETOBJECTINFO;
pub type PMENUGETOBJECTINFO = *mut tagMENUGETOBJECTINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMENUITEMINFOA {
    pub cbSize: UINT,
    pub fMask: UINT,
    pub fType: UINT,
    pub fState: UINT,
    pub wID: UINT,
    pub hSubMenu: HMENU,
    pub hbmpChecked: HBITMAP,
    pub hbmpUnchecked: HBITMAP,
    pub dwItemData: ULONG_PTR,
    pub dwTypeData: LPSTR,
    pub cch: UINT,
    pub hbmpItem: HBITMAP,
}
pub type MENUITEMINFOA = tagMENUITEMINFOA;
pub type LPMENUITEMINFOA = *mut tagMENUITEMINFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMENUITEMINFOW {
    pub cbSize: UINT,
    pub fMask: UINT,
    pub fType: UINT,
    pub fState: UINT,
    pub wID: UINT,
    pub hSubMenu: HMENU,
    pub hbmpChecked: HBITMAP,
    pub hbmpUnchecked: HBITMAP,
    pub dwItemData: ULONG_PTR,
    pub dwTypeData: LPWSTR,
    pub cch: UINT,
    pub hbmpItem: HBITMAP,
}
pub type MENUITEMINFOW = tagMENUITEMINFOW;
pub type LPMENUITEMINFOW = *mut tagMENUITEMINFOW;
pub type MENUITEMINFO = MENUITEMINFOA;
pub type LPMENUITEMINFO = LPMENUITEMINFOA;
pub type LPCMENUITEMINFOA = *const MENUITEMINFOA;
pub type LPCMENUITEMINFOW = *const MENUITEMINFOW;
pub type LPCMENUITEMINFO = LPCMENUITEMINFOA;
extern "C" {
    pub fn InsertMenuItemA(
        hmenu: HMENU,
        item: UINT,
        fByPosition: WINBOOL,
        lpmi: LPCMENUITEMINFOA,
    ) -> WINBOOL;
}
extern "C" {
    pub fn InsertMenuItemW(
        hmenu: HMENU,
        item: UINT,
        fByPosition: WINBOOL,
        lpmi: LPCMENUITEMINFOW,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetMenuItemInfoA(
        hmenu: HMENU,
        item: UINT,
        fByPosition: WINBOOL,
        lpmii: LPMENUITEMINFOA,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetMenuItemInfoW(
        hmenu: HMENU,
        item: UINT,
        fByPosition: WINBOOL,
        lpmii: LPMENUITEMINFOW,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetMenuItemInfoA(
        hmenu: HMENU,
        item: UINT,
        fByPositon: WINBOOL,
        lpmii: LPCMENUITEMINFOA,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetMenuItemInfoW(
        hmenu: HMENU,
        item: UINT,
        fByPositon: WINBOOL,
        lpmii: LPCMENUITEMINFOW,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetMenuDefaultItem(hMenu: HMENU, fByPos: UINT, gmdiFlags: UINT) -> UINT;
}
extern "C" {
    pub fn SetMenuDefaultItem(hMenu: HMENU, uItem: UINT, fByPos: UINT) -> WINBOOL;
}
extern "C" {
    pub fn GetMenuItemRect(hWnd: HWND, hMenu: HMENU, uItem: UINT, lprcItem: LPRECT) -> WINBOOL;
}
extern "C" {
    pub fn MenuItemFromPoint(hWnd: HWND, hMenu: HMENU, ptScreen: POINT) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDROPSTRUCT {
    pub hwndSource: HWND,
    pub hwndSink: HWND,
    pub wFmt: DWORD,
    pub dwData: ULONG_PTR,
    pub ptDrop: POINT,
    pub dwControlData: DWORD,
}
pub type DROPSTRUCT = tagDROPSTRUCT;
pub type PDROPSTRUCT = *mut tagDROPSTRUCT;
pub type LPDROPSTRUCT = *mut tagDROPSTRUCT;
extern "C" {
    pub fn DragObject(
        hwndParent: HWND,
        hwndFrom: HWND,
        fmt: UINT,
        data: ULONG_PTR,
        hcur: HCURSOR,
    ) -> DWORD;
}
extern "C" {
    pub fn DragDetect(hwnd: HWND, pt: POINT) -> WINBOOL;
}
extern "C" {
    pub fn DrawIcon(
        hDC: HDC,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        hIcon: HICON,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDRAWTEXTPARAMS {
    pub cbSize: UINT,
    pub iTabLength: ::std::os::raw::c_int,
    pub iLeftMargin: ::std::os::raw::c_int,
    pub iRightMargin: ::std::os::raw::c_int,
    pub uiLengthDrawn: UINT,
}
pub type DRAWTEXTPARAMS = tagDRAWTEXTPARAMS;
pub type LPDRAWTEXTPARAMS = *mut tagDRAWTEXTPARAMS;
extern "C" {
    pub fn DrawTextA(
        hdc: HDC,
        lpchText: LPCSTR,
        cchText: ::std::os::raw::c_int,
        lprc: LPRECT,
        format: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn DrawTextW(
        hdc: HDC,
        lpchText: LPCWSTR,
        cchText: ::std::os::raw::c_int,
        lprc: LPRECT,
        format: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn DrawTextExA(
        hdc: HDC,
        lpchText: LPSTR,
        cchText: ::std::os::raw::c_int,
        lprc: LPRECT,
        format: UINT,
        lpdtp: LPDRAWTEXTPARAMS,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn DrawTextExW(
        hdc: HDC,
        lpchText: LPWSTR,
        cchText: ::std::os::raw::c_int,
        lprc: LPRECT,
        format: UINT,
        lpdtp: LPDRAWTEXTPARAMS,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GrayStringA(
        hDC: HDC,
        hBrush: HBRUSH,
        lpOutputFunc: GRAYSTRINGPROC,
        lpData: LPARAM,
        nCount: ::std::os::raw::c_int,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GrayStringW(
        hDC: HDC,
        hBrush: HBRUSH,
        lpOutputFunc: GRAYSTRINGPROC,
        lpData: LPARAM,
        nCount: ::std::os::raw::c_int,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DrawStateA(
        hdc: HDC,
        hbrFore: HBRUSH,
        qfnCallBack: DRAWSTATEPROC,
        lData: LPARAM,
        wData: WPARAM,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
        uFlags: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DrawStateW(
        hdc: HDC,
        hbrFore: HBRUSH,
        qfnCallBack: DRAWSTATEPROC,
        lData: LPARAM,
        wData: WPARAM,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
        uFlags: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn TabbedTextOutA(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lpString: LPCSTR,
        chCount: ::std::os::raw::c_int,
        nTabPositions: ::std::os::raw::c_int,
        lpnTabStopPositions: *const INT,
        nTabOrigin: ::std::os::raw::c_int,
    ) -> LONG;
}
extern "C" {
    pub fn TabbedTextOutW(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lpString: LPCWSTR,
        chCount: ::std::os::raw::c_int,
        nTabPositions: ::std::os::raw::c_int,
        lpnTabStopPositions: *const INT,
        nTabOrigin: ::std::os::raw::c_int,
    ) -> LONG;
}
extern "C" {
    pub fn GetTabbedTextExtentA(
        hdc: HDC,
        lpString: LPCSTR,
        chCount: ::std::os::raw::c_int,
        nTabPositions: ::std::os::raw::c_int,
        lpnTabStopPositions: *const INT,
    ) -> DWORD;
}
extern "C" {
    pub fn GetTabbedTextExtentW(
        hdc: HDC,
        lpString: LPCWSTR,
        chCount: ::std::os::raw::c_int,
        nTabPositions: ::std::os::raw::c_int,
        lpnTabStopPositions: *const INT,
    ) -> DWORD;
}
extern "C" {
    pub fn UpdateWindow(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn SetActiveWindow(hWnd: HWND) -> HWND;
}
extern "C" {
    pub fn GetForegroundWindow() -> HWND;
}
extern "C" {
    pub fn PaintDesktop(hdc: HDC) -> WINBOOL;
}
extern "C" {
    pub fn SwitchToThisWindow(hwnd: HWND, fUnknown: WINBOOL);
}
extern "C" {
    pub fn SetForegroundWindow(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn AllowSetForegroundWindow(dwProcessId: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn LockSetForegroundWindow(uLockCode: UINT) -> WINBOOL;
}
extern "C" {
    pub fn WindowFromDC(hDC: HDC) -> HWND;
}
extern "C" {
    pub fn GetDC(hWnd: HWND) -> HDC;
}
extern "C" {
    pub fn GetDCEx(hWnd: HWND, hrgnClip: HRGN, flags: DWORD) -> HDC;
}
extern "C" {
    pub fn GetWindowDC(hWnd: HWND) -> HDC;
}
extern "C" {
    pub fn ReleaseDC(hWnd: HWND, hDC: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn BeginPaint(hWnd: HWND, lpPaint: LPPAINTSTRUCT) -> HDC;
}
extern "C" {
    pub fn EndPaint(hWnd: HWND, lpPaint: *const PAINTSTRUCT) -> WINBOOL;
}
extern "C" {
    pub fn GetUpdateRect(hWnd: HWND, lpRect: LPRECT, bErase: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GetUpdateRgn(hWnd: HWND, hRgn: HRGN, bErase: WINBOOL) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetWindowRgn(hWnd: HWND, hRgn: HRGN, bRedraw: WINBOOL) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetWindowRgn(hWnd: HWND, hRgn: HRGN) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetWindowRgnBox(hWnd: HWND, lprc: LPRECT) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ExcludeUpdateRgn(hDC: HDC, hWnd: HWND) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn InvalidateRect(hWnd: HWND, lpRect: *const RECT, bErase: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn ValidateRect(hWnd: HWND, lpRect: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn InvalidateRgn(hWnd: HWND, hRgn: HRGN, bErase: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn ValidateRgn(hWnd: HWND, hRgn: HRGN) -> WINBOOL;
}
extern "C" {
    pub fn RedrawWindow(
        hWnd: HWND,
        lprcUpdate: *const RECT,
        hrgnUpdate: HRGN,
        flags: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LockWindowUpdate(hWndLock: HWND) -> WINBOOL;
}
extern "C" {
    pub fn ScrollWindow(
        hWnd: HWND,
        XAmount: ::std::os::raw::c_int,
        YAmount: ::std::os::raw::c_int,
        lpRect: *const RECT,
        lpClipRect: *const RECT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ScrollDC(
        hDC: HDC,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
        lprcScroll: *const RECT,
        lprcClip: *const RECT,
        hrgnUpdate: HRGN,
        lprcUpdate: LPRECT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ScrollWindowEx(
        hWnd: HWND,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
        prcScroll: *const RECT,
        prcClip: *const RECT,
        hrgnUpdate: HRGN,
        prcUpdate: LPRECT,
        flags: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetScrollPos(
        hWnd: HWND,
        nBar: ::std::os::raw::c_int,
        nPos: ::std::os::raw::c_int,
        bRedraw: WINBOOL,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetScrollPos(hWnd: HWND, nBar: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetScrollRange(
        hWnd: HWND,
        nBar: ::std::os::raw::c_int,
        nMinPos: ::std::os::raw::c_int,
        nMaxPos: ::std::os::raw::c_int,
        bRedraw: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetScrollRange(
        hWnd: HWND,
        nBar: ::std::os::raw::c_int,
        lpMinPos: LPINT,
        lpMaxPos: LPINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ShowScrollBar(hWnd: HWND, wBar: ::std::os::raw::c_int, bShow: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn EnableScrollBar(hWnd: HWND, wSBflags: UINT, wArrows: UINT) -> WINBOOL;
}
extern "C" {
    pub fn SetPropA(hWnd: HWND, lpString: LPCSTR, hData: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn SetPropW(hWnd: HWND, lpString: LPCWSTR, hData: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn GetPropA(hWnd: HWND, lpString: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn GetPropW(hWnd: HWND, lpString: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn RemovePropA(hWnd: HWND, lpString: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn RemovePropW(hWnd: HWND, lpString: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn EnumPropsExA(
        hWnd: HWND,
        lpEnumFunc: PROPENUMPROCEXA,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumPropsExW(
        hWnd: HWND,
        lpEnumFunc: PROPENUMPROCEXW,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumPropsA(hWnd: HWND, lpEnumFunc: PROPENUMPROCA) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumPropsW(hWnd: HWND, lpEnumFunc: PROPENUMPROCW) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetWindowTextA(hWnd: HWND, lpString: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetWindowTextW(hWnd: HWND, lpString: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetWindowTextA(
        hWnd: HWND,
        lpString: LPSTR,
        nMaxCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetWindowTextW(
        hWnd: HWND,
        lpString: LPWSTR,
        nMaxCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetWindowTextLengthA(hWnd: HWND) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetWindowTextLengthW(hWnd: HWND) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetClientRect(hWnd: HWND, lpRect: LPRECT) -> WINBOOL;
}
extern "C" {
    pub fn GetWindowRect(hWnd: HWND, lpRect: LPRECT) -> WINBOOL;
}
extern "C" {
    pub fn AdjustWindowRect(lpRect: LPRECT, dwStyle: DWORD, bMenu: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn AdjustWindowRectEx(
        lpRect: LPRECT,
        dwStyle: DWORD,
        bMenu: WINBOOL,
        dwExStyle: DWORD,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagHELPINFO {
    pub cbSize: UINT,
    pub iContextType: ::std::os::raw::c_int,
    pub iCtrlId: ::std::os::raw::c_int,
    pub hItemHandle: HANDLE,
    pub dwContextId: DWORD_PTR,
    pub MousePos: POINT,
}
pub type HELPINFO = tagHELPINFO;
pub type LPHELPINFO = *mut tagHELPINFO;
extern "C" {
    pub fn SetWindowContextHelpId(arg1: HWND, arg2: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetWindowContextHelpId(arg1: HWND) -> DWORD;
}
extern "C" {
    pub fn SetMenuContextHelpId(arg1: HMENU, arg2: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetMenuContextHelpId(arg1: HMENU) -> DWORD;
}
extern "C" {
    pub fn MessageBoxA(
        hWnd: HWND,
        lpText: LPCSTR,
        lpCaption: LPCSTR,
        uType: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn MessageBoxW(
        hWnd: HWND,
        lpText: LPCWSTR,
        lpCaption: LPCWSTR,
        uType: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn MessageBoxExA(
        hWnd: HWND,
        lpText: LPCSTR,
        lpCaption: LPCSTR,
        uType: UINT,
        wLanguageId: WORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn MessageBoxExW(
        hWnd: HWND,
        lpText: LPCWSTR,
        lpCaption: LPCWSTR,
        uType: UINT,
        wLanguageId: WORD,
    ) -> ::std::os::raw::c_int;
}
pub type MSGBOXCALLBACK = ::std::option::Option<unsafe extern "C" fn(lpHelpInfo: LPHELPINFO)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMSGBOXPARAMSA {
    pub cbSize: UINT,
    pub hwndOwner: HWND,
    pub hInstance: HINSTANCE,
    pub lpszText: LPCSTR,
    pub lpszCaption: LPCSTR,
    pub dwStyle: DWORD,
    pub lpszIcon: LPCSTR,
    pub dwContextHelpId: DWORD_PTR,
    pub lpfnMsgBoxCallback: MSGBOXCALLBACK,
    pub dwLanguageId: DWORD,
}
pub type MSGBOXPARAMSA = tagMSGBOXPARAMSA;
pub type PMSGBOXPARAMSA = *mut tagMSGBOXPARAMSA;
pub type LPMSGBOXPARAMSA = *mut tagMSGBOXPARAMSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMSGBOXPARAMSW {
    pub cbSize: UINT,
    pub hwndOwner: HWND,
    pub hInstance: HINSTANCE,
    pub lpszText: LPCWSTR,
    pub lpszCaption: LPCWSTR,
    pub dwStyle: DWORD,
    pub lpszIcon: LPCWSTR,
    pub dwContextHelpId: DWORD_PTR,
    pub lpfnMsgBoxCallback: MSGBOXCALLBACK,
    pub dwLanguageId: DWORD,
}
pub type MSGBOXPARAMSW = tagMSGBOXPARAMSW;
pub type PMSGBOXPARAMSW = *mut tagMSGBOXPARAMSW;
pub type LPMSGBOXPARAMSW = *mut tagMSGBOXPARAMSW;
pub type MSGBOXPARAMS = MSGBOXPARAMSA;
pub type PMSGBOXPARAMS = PMSGBOXPARAMSA;
pub type LPMSGBOXPARAMS = LPMSGBOXPARAMSA;
extern "C" {
    pub fn MessageBoxIndirectA(lpmbp: *const MSGBOXPARAMSA) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn MessageBoxIndirectW(lpmbp: *const MSGBOXPARAMSW) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn MessageBeep(uType: UINT) -> WINBOOL;
}
extern "C" {
    pub fn ShowCursor(bShow: WINBOOL) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetCursorPos(X: ::std::os::raw::c_int, Y: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn SetCursor(hCursor: HCURSOR) -> HCURSOR;
}
extern "C" {
    pub fn GetCursorPos(lpPoint: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn ClipCursor(lpRect: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn GetClipCursor(lpRect: LPRECT) -> WINBOOL;
}
extern "C" {
    pub fn GetCursor() -> HCURSOR;
}
extern "C" {
    pub fn CreateCaret(
        hWnd: HWND,
        hBitmap: HBITMAP,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetCaretBlinkTime() -> UINT;
}
extern "C" {
    pub fn SetCaretBlinkTime(uMSeconds: UINT) -> WINBOOL;
}
extern "C" {
    pub fn DestroyCaret() -> WINBOOL;
}
extern "C" {
    pub fn HideCaret(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn ShowCaret(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn SetCaretPos(X: ::std::os::raw::c_int, Y: ::std::os::raw::c_int) -> WINBOOL;
}
extern "C" {
    pub fn GetCaretPos(lpPoint: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn ClientToScreen(hWnd: HWND, lpPoint: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn ScreenToClient(hWnd: HWND, lpPoint: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn MapWindowPoints(
        hWndFrom: HWND,
        hWndTo: HWND,
        lpPoints: LPPOINT,
        cPoints: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn WindowFromPoint(Point: POINT) -> HWND;
}
extern "C" {
    pub fn ChildWindowFromPoint(hWndParent: HWND, Point: POINT) -> HWND;
}
extern "C" {
    pub fn ChildWindowFromPointEx(hwnd: HWND, pt: POINT, flags: UINT) -> HWND;
}
extern "C" {
    pub fn GetSysColor(nIndex: ::std::os::raw::c_int) -> DWORD;
}
extern "C" {
    pub fn GetSysColorBrush(nIndex: ::std::os::raw::c_int) -> HBRUSH;
}
extern "C" {
    pub fn SetSysColors(
        cElements: ::std::os::raw::c_int,
        lpaElements: *const INT,
        lpaRgbValues: *const COLORREF,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DrawFocusRect(hDC: HDC, lprc: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn FillRect(hDC: HDC, lprc: *const RECT, hbr: HBRUSH) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn FrameRect(hDC: HDC, lprc: *const RECT, hbr: HBRUSH) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn InvertRect(hDC: HDC, lprc: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn SetRect(
        lprc: LPRECT,
        xLeft: ::std::os::raw::c_int,
        yTop: ::std::os::raw::c_int,
        xRight: ::std::os::raw::c_int,
        yBottom: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetRectEmpty(lprc: LPRECT) -> WINBOOL;
}
extern "C" {
    pub fn CopyRect(lprcDst: LPRECT, lprcSrc: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn InflateRect(
        lprc: LPRECT,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn IntersectRect(lprcDst: LPRECT, lprcSrc1: *const RECT, lprcSrc2: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn UnionRect(lprcDst: LPRECT, lprcSrc1: *const RECT, lprcSrc2: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn SubtractRect(lprcDst: LPRECT, lprcSrc1: *const RECT, lprcSrc2: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn OffsetRect(
        lprc: LPRECT,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn IsRectEmpty(lprc: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn EqualRect(lprc1: *const RECT, lprc2: *const RECT) -> WINBOOL;
}
extern "C" {
    pub fn PtInRect(lprc: *const RECT, pt: POINT) -> WINBOOL;
}
extern "C" {
    pub fn GetWindowWord(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> WORD;
}
extern "C" {
    pub fn SetWindowWord(hWnd: HWND, nIndex: ::std::os::raw::c_int, wNewWord: WORD) -> WORD;
}
extern "C" {
    pub fn GetWindowLongA(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> LONG;
}
extern "C" {
    pub fn GetWindowLongW(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> LONG;
}
extern "C" {
    pub fn SetWindowLongA(hWnd: HWND, nIndex: ::std::os::raw::c_int, dwNewLong: LONG) -> LONG;
}
extern "C" {
    pub fn SetWindowLongW(hWnd: HWND, nIndex: ::std::os::raw::c_int, dwNewLong: LONG) -> LONG;
}
extern "C" {
    pub fn GetWindowLongPtrA(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> LONG_PTR;
}
extern "C" {
    pub fn GetWindowLongPtrW(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> LONG_PTR;
}
extern "C" {
    pub fn SetWindowLongPtrA(
        hWnd: HWND,
        nIndex: ::std::os::raw::c_int,
        dwNewLong: LONG_PTR,
    ) -> LONG_PTR;
}
extern "C" {
    pub fn SetWindowLongPtrW(
        hWnd: HWND,
        nIndex: ::std::os::raw::c_int,
        dwNewLong: LONG_PTR,
    ) -> LONG_PTR;
}
extern "C" {
    pub fn GetClassWord(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> WORD;
}
extern "C" {
    pub fn SetClassWord(hWnd: HWND, nIndex: ::std::os::raw::c_int, wNewWord: WORD) -> WORD;
}
extern "C" {
    pub fn GetClassLongA(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> DWORD;
}
extern "C" {
    pub fn GetClassLongW(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> DWORD;
}
extern "C" {
    pub fn SetClassLongA(hWnd: HWND, nIndex: ::std::os::raw::c_int, dwNewLong: LONG) -> DWORD;
}
extern "C" {
    pub fn SetClassLongW(hWnd: HWND, nIndex: ::std::os::raw::c_int, dwNewLong: LONG) -> DWORD;
}
extern "C" {
    pub fn GetClassLongPtrA(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> ULONG_PTR;
}
extern "C" {
    pub fn GetClassLongPtrW(hWnd: HWND, nIndex: ::std::os::raw::c_int) -> ULONG_PTR;
}
extern "C" {
    pub fn SetClassLongPtrA(
        hWnd: HWND,
        nIndex: ::std::os::raw::c_int,
        dwNewLong: LONG_PTR,
    ) -> ULONG_PTR;
}
extern "C" {
    pub fn SetClassLongPtrW(
        hWnd: HWND,
        nIndex: ::std::os::raw::c_int,
        dwNewLong: LONG_PTR,
    ) -> ULONG_PTR;
}
extern "C" {
    pub fn GetProcessDefaultLayout(pdwDefaultLayout: *mut DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetProcessDefaultLayout(dwDefaultLayout: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetDesktopWindow() -> HWND;
}
extern "C" {
    pub fn GetParent(hWnd: HWND) -> HWND;
}
extern "C" {
    pub fn SetParent(hWndChild: HWND, hWndNewParent: HWND) -> HWND;
}
extern "C" {
    pub fn EnumChildWindows(hWndParent: HWND, lpEnumFunc: WNDENUMPROC, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn FindWindowA(lpClassName: LPCSTR, lpWindowName: LPCSTR) -> HWND;
}
extern "C" {
    pub fn FindWindowW(lpClassName: LPCWSTR, lpWindowName: LPCWSTR) -> HWND;
}
extern "C" {
    pub fn FindWindowExA(
        hWndParent: HWND,
        hWndChildAfter: HWND,
        lpszClass: LPCSTR,
        lpszWindow: LPCSTR,
    ) -> HWND;
}
extern "C" {
    pub fn FindWindowExW(
        hWndParent: HWND,
        hWndChildAfter: HWND,
        lpszClass: LPCWSTR,
        lpszWindow: LPCWSTR,
    ) -> HWND;
}
extern "C" {
    pub fn GetShellWindow() -> HWND;
}
extern "C" {
    pub fn RegisterShellHookWindow(hwnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn DeregisterShellHookWindow(hwnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn EnumWindows(lpEnumFunc: WNDENUMPROC, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn EnumThreadWindows(dwThreadId: DWORD, lpfn: WNDENUMPROC, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn GetClassNameA(
        hWnd: HWND,
        lpClassName: LPSTR,
        nMaxCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetClassNameW(
        hWnd: HWND,
        lpClassName: LPWSTR,
        nMaxCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTopWindow(hWnd: HWND) -> HWND;
}
extern "C" {
    pub fn GetWindowThreadProcessId(hWnd: HWND, lpdwProcessId: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn IsGUIThread(bConvert: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GetLastActivePopup(hWnd: HWND) -> HWND;
}
extern "C" {
    pub fn GetWindow(hWnd: HWND, uCmd: UINT) -> HWND;
}
extern "C" {
    pub fn SetWindowsHookA(nFilterType: ::std::os::raw::c_int, pfnFilterProc: HOOKPROC) -> HHOOK;
}
extern "C" {
    pub fn SetWindowsHookW(nFilterType: ::std::os::raw::c_int, pfnFilterProc: HOOKPROC) -> HHOOK;
}
extern "C" {
    pub fn UnhookWindowsHook(nCode: ::std::os::raw::c_int, pfnFilterProc: HOOKPROC) -> WINBOOL;
}
extern "C" {
    pub fn SetWindowsHookExA(
        idHook: ::std::os::raw::c_int,
        lpfn: HOOKPROC,
        hmod: HINSTANCE,
        dwThreadId: DWORD,
    ) -> HHOOK;
}
extern "C" {
    pub fn SetWindowsHookExW(
        idHook: ::std::os::raw::c_int,
        lpfn: HOOKPROC,
        hmod: HINSTANCE,
        dwThreadId: DWORD,
    ) -> HHOOK;
}
extern "C" {
    pub fn UnhookWindowsHookEx(hhk: HHOOK) -> WINBOOL;
}
extern "C" {
    pub fn CallNextHookEx(
        hhk: HHOOK,
        nCode: ::std::os::raw::c_int,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> LRESULT;
}
extern "C" {
    pub fn CheckMenuRadioItem(
        hmenu: HMENU,
        first: UINT,
        last: UINT,
        check: UINT,
        flags: UINT,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MENUITEMTEMPLATEHEADER {
    pub versionNumber: WORD,
    pub offset: WORD,
}
pub type PMENUITEMTEMPLATEHEADER = *mut MENUITEMTEMPLATEHEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MENUITEMTEMPLATE {
    pub mtOption: WORD,
    pub mtID: WORD,
    pub mtString: [WCHAR; 1usize],
}
pub type PMENUITEMTEMPLATE = *mut MENUITEMTEMPLATE;
extern "C" {
    pub fn LoadBitmapA(hInstance: HINSTANCE, lpBitmapName: LPCSTR) -> HBITMAP;
}
extern "C" {
    pub fn LoadBitmapW(hInstance: HINSTANCE, lpBitmapName: LPCWSTR) -> HBITMAP;
}
extern "C" {
    pub fn LoadCursorA(hInstance: HINSTANCE, lpCursorName: LPCSTR) -> HCURSOR;
}
extern "C" {
    pub fn LoadCursorW(hInstance: HINSTANCE, lpCursorName: LPCWSTR) -> HCURSOR;
}
extern "C" {
    pub fn LoadCursorFromFileA(lpFileName: LPCSTR) -> HCURSOR;
}
extern "C" {
    pub fn LoadCursorFromFileW(lpFileName: LPCWSTR) -> HCURSOR;
}
extern "C" {
    pub fn CreateCursor(
        hInst: HINSTANCE,
        xHotSpot: ::std::os::raw::c_int,
        yHotSpot: ::std::os::raw::c_int,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
        pvANDPlane: *const ::std::os::raw::c_void,
        pvXORPlane: *const ::std::os::raw::c_void,
    ) -> HCURSOR;
}
extern "C" {
    pub fn DestroyCursor(hCursor: HCURSOR) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ICONINFO {
    pub fIcon: WINBOOL,
    pub xHotspot: DWORD,
    pub yHotspot: DWORD,
    pub hbmMask: HBITMAP,
    pub hbmColor: HBITMAP,
}
pub type ICONINFO = _ICONINFO;
pub type PICONINFO = *mut ICONINFO;
extern "C" {
    pub fn SetSystemCursor(hcur: HCURSOR, id: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn LoadIconA(hInstance: HINSTANCE, lpIconName: LPCSTR) -> HICON;
}
extern "C" {
    pub fn LoadIconW(hInstance: HINSTANCE, lpIconName: LPCWSTR) -> HICON;
}
extern "C" {
    pub fn PrivateExtractIconsA(
        szFileName: LPCSTR,
        nIconIndex: ::std::os::raw::c_int,
        cxIcon: ::std::os::raw::c_int,
        cyIcon: ::std::os::raw::c_int,
        phicon: *mut HICON,
        piconid: *mut UINT,
        nIcons: UINT,
        flags: UINT,
    ) -> UINT;
}
extern "C" {
    pub fn PrivateExtractIconsW(
        szFileName: LPCWSTR,
        nIconIndex: ::std::os::raw::c_int,
        cxIcon: ::std::os::raw::c_int,
        cyIcon: ::std::os::raw::c_int,
        phicon: *mut HICON,
        piconid: *mut UINT,
        nIcons: UINT,
        flags: UINT,
    ) -> UINT;
}
extern "C" {
    pub fn CreateIcon(
        hInstance: HINSTANCE,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
        cPlanes: BYTE,
        cBitsPixel: BYTE,
        lpbANDbits: *const BYTE,
        lpbXORbits: *const BYTE,
    ) -> HICON;
}
extern "C" {
    pub fn DestroyIcon(hIcon: HICON) -> WINBOOL;
}
extern "C" {
    pub fn LookupIconIdFromDirectory(presbits: PBYTE, fIcon: WINBOOL) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn LookupIconIdFromDirectoryEx(
        presbits: PBYTE,
        fIcon: WINBOOL,
        cxDesired: ::std::os::raw::c_int,
        cyDesired: ::std::os::raw::c_int,
        Flags: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CreateIconFromResource(
        presbits: PBYTE,
        dwResSize: DWORD,
        fIcon: WINBOOL,
        dwVer: DWORD,
    ) -> HICON;
}
extern "C" {
    pub fn CreateIconFromResourceEx(
        presbits: PBYTE,
        dwResSize: DWORD,
        fIcon: WINBOOL,
        dwVer: DWORD,
        cxDesired: ::std::os::raw::c_int,
        cyDesired: ::std::os::raw::c_int,
        Flags: UINT,
    ) -> HICON;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCURSORSHAPE {
    pub xHotSpot: ::std::os::raw::c_int,
    pub yHotSpot: ::std::os::raw::c_int,
    pub cx: ::std::os::raw::c_int,
    pub cy: ::std::os::raw::c_int,
    pub cbWidth: ::std::os::raw::c_int,
    pub Planes: BYTE,
    pub BitsPixel: BYTE,
}
pub type CURSORSHAPE = tagCURSORSHAPE;
pub type LPCURSORSHAPE = *mut tagCURSORSHAPE;
extern "C" {
    pub fn LoadImageA(
        hInst: HINSTANCE,
        name: LPCSTR,
        type_: UINT,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
        fuLoad: UINT,
    ) -> HANDLE;
}
extern "C" {
    pub fn LoadImageW(
        hInst: HINSTANCE,
        name: LPCWSTR,
        type_: UINT,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
        fuLoad: UINT,
    ) -> HANDLE;
}
extern "C" {
    pub fn CopyImage(
        h: HANDLE,
        type_: UINT,
        cx: ::std::os::raw::c_int,
        cy: ::std::os::raw::c_int,
        flags: UINT,
    ) -> HANDLE;
}
extern "C" {
    pub fn DrawIconEx(
        hdc: HDC,
        xLeft: ::std::os::raw::c_int,
        yTop: ::std::os::raw::c_int,
        hIcon: HICON,
        cxWidth: ::std::os::raw::c_int,
        cyWidth: ::std::os::raw::c_int,
        istepIfAniCur: UINT,
        hbrFlickerFreeDraw: HBRUSH,
        diFlags: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateIconIndirect(piconinfo: PICONINFO) -> HICON;
}
extern "C" {
    pub fn CopyIcon(hIcon: HICON) -> HICON;
}
extern "C" {
    pub fn GetIconInfo(hIcon: HICON, piconinfo: PICONINFO) -> WINBOOL;
}
extern "C" {
    pub fn IsDialogMessageA(hDlg: HWND, lpMsg: LPMSG) -> WINBOOL;
}
extern "C" {
    pub fn IsDialogMessageW(hDlg: HWND, lpMsg: LPMSG) -> WINBOOL;
}
extern "C" {
    pub fn MapDialogRect(hDlg: HWND, lpRect: LPRECT) -> WINBOOL;
}
extern "C" {
    pub fn DlgDirListA(
        hDlg: HWND,
        lpPathSpec: LPSTR,
        nIDListBox: ::std::os::raw::c_int,
        nIDStaticPath: ::std::os::raw::c_int,
        uFileType: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn DlgDirListW(
        hDlg: HWND,
        lpPathSpec: LPWSTR,
        nIDListBox: ::std::os::raw::c_int,
        nIDStaticPath: ::std::os::raw::c_int,
        uFileType: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn DlgDirSelectExA(
        hwndDlg: HWND,
        lpString: LPSTR,
        chCount: ::std::os::raw::c_int,
        idListBox: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DlgDirSelectExW(
        hwndDlg: HWND,
        lpString: LPWSTR,
        chCount: ::std::os::raw::c_int,
        idListBox: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DlgDirListComboBoxA(
        hDlg: HWND,
        lpPathSpec: LPSTR,
        nIDComboBox: ::std::os::raw::c_int,
        nIDStaticPath: ::std::os::raw::c_int,
        uFiletype: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn DlgDirListComboBoxW(
        hDlg: HWND,
        lpPathSpec: LPWSTR,
        nIDComboBox: ::std::os::raw::c_int,
        nIDStaticPath: ::std::os::raw::c_int,
        uFiletype: UINT,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn DlgDirSelectComboBoxExA(
        hwndDlg: HWND,
        lpString: LPSTR,
        cchOut: ::std::os::raw::c_int,
        idComboBox: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
extern "C" {
    pub fn DlgDirSelectComboBoxExW(
        hwndDlg: HWND,
        lpString: LPWSTR,
        cchOut: ::std::os::raw::c_int,
        idComboBox: ::std::os::raw::c_int,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSCROLLINFO {
    pub cbSize: UINT,
    pub fMask: UINT,
    pub nMin: ::std::os::raw::c_int,
    pub nMax: ::std::os::raw::c_int,
    pub nPage: UINT,
    pub nPos: ::std::os::raw::c_int,
    pub nTrackPos: ::std::os::raw::c_int,
}
pub type SCROLLINFO = tagSCROLLINFO;
pub type LPSCROLLINFO = *mut tagSCROLLINFO;
pub type LPCSCROLLINFO = *const SCROLLINFO;
extern "C" {
    pub fn SetScrollInfo(
        hwnd: HWND,
        nBar: ::std::os::raw::c_int,
        lpsi: LPCSCROLLINFO,
        redraw: WINBOOL,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetScrollInfo(hwnd: HWND, nBar: ::std::os::raw::c_int, lpsi: LPSCROLLINFO) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMDICREATESTRUCTA {
    pub szClass: LPCSTR,
    pub szTitle: LPCSTR,
    pub hOwner: HANDLE,
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub cx: ::std::os::raw::c_int,
    pub cy: ::std::os::raw::c_int,
    pub style: DWORD,
    pub lParam: LPARAM,
}
pub type MDICREATESTRUCTA = tagMDICREATESTRUCTA;
pub type LPMDICREATESTRUCTA = *mut tagMDICREATESTRUCTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMDICREATESTRUCTW {
    pub szClass: LPCWSTR,
    pub szTitle: LPCWSTR,
    pub hOwner: HANDLE,
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub cx: ::std::os::raw::c_int,
    pub cy: ::std::os::raw::c_int,
    pub style: DWORD,
    pub lParam: LPARAM,
}
pub type MDICREATESTRUCTW = tagMDICREATESTRUCTW;
pub type LPMDICREATESTRUCTW = *mut tagMDICREATESTRUCTW;
pub type MDICREATESTRUCT = MDICREATESTRUCTA;
pub type LPMDICREATESTRUCT = LPMDICREATESTRUCTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCLIENTCREATESTRUCT {
    pub hWindowMenu: HANDLE,
    pub idFirstChild: UINT,
}
pub type CLIENTCREATESTRUCT = tagCLIENTCREATESTRUCT;
pub type LPCLIENTCREATESTRUCT = *mut tagCLIENTCREATESTRUCT;
extern "C" {
    pub fn DefFrameProcA(
        hWnd: HWND,
        hWndMDIClient: HWND,
        uMsg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> LRESULT;
}
extern "C" {
    pub fn DefFrameProcW(
        hWnd: HWND,
        hWndMDIClient: HWND,
        uMsg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
    ) -> LRESULT;
}
extern "C" {
    pub fn DefMDIChildProcA(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn DefMDIChildProcW(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn TranslateMDISysAccel(hWndClient: HWND, lpMsg: LPMSG) -> WINBOOL;
}
extern "C" {
    pub fn ArrangeIconicWindows(hWnd: HWND) -> UINT;
}
extern "C" {
    pub fn CreateMDIWindowA(
        lpClassName: LPCSTR,
        lpWindowName: LPCSTR,
        dwStyle: DWORD,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
        hWndParent: HWND,
        hInstance: HINSTANCE,
        lParam: LPARAM,
    ) -> HWND;
}
extern "C" {
    pub fn CreateMDIWindowW(
        lpClassName: LPCWSTR,
        lpWindowName: LPCWSTR,
        dwStyle: DWORD,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        nWidth: ::std::os::raw::c_int,
        nHeight: ::std::os::raw::c_int,
        hWndParent: HWND,
        hInstance: HINSTANCE,
        lParam: LPARAM,
    ) -> HWND;
}
extern "C" {
    pub fn TileWindows(
        hwndParent: HWND,
        wHow: UINT,
        lpRect: *const RECT,
        cKids: UINT,
        lpKids: *const HWND,
    ) -> WORD;
}
extern "C" {
    pub fn CascadeWindows(
        hwndParent: HWND,
        wHow: UINT,
        lpRect: *const RECT,
        cKids: UINT,
        lpKids: *const HWND,
    ) -> WORD;
}
pub type HELPPOLY = DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMULTIKEYHELPA {
    pub mkSize: DWORD,
    pub mkKeylist: CHAR,
    pub szKeyphrase: [CHAR; 1usize],
}
pub type MULTIKEYHELPA = tagMULTIKEYHELPA;
pub type PMULTIKEYHELPA = *mut tagMULTIKEYHELPA;
pub type LPMULTIKEYHELPA = *mut tagMULTIKEYHELPA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMULTIKEYHELPW {
    pub mkSize: DWORD,
    pub mkKeylist: WCHAR,
    pub szKeyphrase: [WCHAR; 1usize],
}
pub type MULTIKEYHELPW = tagMULTIKEYHELPW;
pub type PMULTIKEYHELPW = *mut tagMULTIKEYHELPW;
pub type LPMULTIKEYHELPW = *mut tagMULTIKEYHELPW;
pub type MULTIKEYHELP = MULTIKEYHELPA;
pub type PMULTIKEYHELP = PMULTIKEYHELPA;
pub type LPMULTIKEYHELP = LPMULTIKEYHELPA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagHELPWININFOA {
    pub wStructSize: ::std::os::raw::c_int,
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub dx: ::std::os::raw::c_int,
    pub dy: ::std::os::raw::c_int,
    pub wMax: ::std::os::raw::c_int,
    pub rgchMember: [CHAR; 2usize],
}
pub type HELPWININFOA = tagHELPWININFOA;
pub type PHELPWININFOA = *mut tagHELPWININFOA;
pub type LPHELPWININFOA = *mut tagHELPWININFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagHELPWININFOW {
    pub wStructSize: ::std::os::raw::c_int,
    pub x: ::std::os::raw::c_int,
    pub y: ::std::os::raw::c_int,
    pub dx: ::std::os::raw::c_int,
    pub dy: ::std::os::raw::c_int,
    pub wMax: ::std::os::raw::c_int,
    pub rgchMember: [WCHAR; 2usize],
}
pub type HELPWININFOW = tagHELPWININFOW;
pub type PHELPWININFOW = *mut tagHELPWININFOW;
pub type LPHELPWININFOW = *mut tagHELPWININFOW;
pub type HELPWININFO = HELPWININFOA;
pub type PHELPWININFO = PHELPWININFOA;
pub type LPHELPWININFO = LPHELPWININFOA;
extern "C" {
    pub fn WinHelpA(hWndMain: HWND, lpszHelp: LPCSTR, uCommand: UINT, dwData: ULONG_PTR)
        -> WINBOOL;
}
extern "C" {
    pub fn WinHelpW(
        hWndMain: HWND,
        lpszHelp: LPCWSTR,
        uCommand: UINT,
        dwData: ULONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetGuiResources(hProcess: HANDLE, uiFlags: DWORD) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNONCLIENTMETRICSA {
    pub cbSize: UINT,
    pub iBorderWidth: ::std::os::raw::c_int,
    pub iScrollWidth: ::std::os::raw::c_int,
    pub iScrollHeight: ::std::os::raw::c_int,
    pub iCaptionWidth: ::std::os::raw::c_int,
    pub iCaptionHeight: ::std::os::raw::c_int,
    pub lfCaptionFont: LOGFONTA,
    pub iSmCaptionWidth: ::std::os::raw::c_int,
    pub iSmCaptionHeight: ::std::os::raw::c_int,
    pub lfSmCaptionFont: LOGFONTA,
    pub iMenuWidth: ::std::os::raw::c_int,
    pub iMenuHeight: ::std::os::raw::c_int,
    pub lfMenuFont: LOGFONTA,
    pub lfStatusFont: LOGFONTA,
    pub lfMessageFont: LOGFONTA,
}
pub type NONCLIENTMETRICSA = tagNONCLIENTMETRICSA;
pub type PNONCLIENTMETRICSA = *mut tagNONCLIENTMETRICSA;
pub type LPNONCLIENTMETRICSA = *mut tagNONCLIENTMETRICSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNONCLIENTMETRICSW {
    pub cbSize: UINT,
    pub iBorderWidth: ::std::os::raw::c_int,
    pub iScrollWidth: ::std::os::raw::c_int,
    pub iScrollHeight: ::std::os::raw::c_int,
    pub iCaptionWidth: ::std::os::raw::c_int,
    pub iCaptionHeight: ::std::os::raw::c_int,
    pub lfCaptionFont: LOGFONTW,
    pub iSmCaptionWidth: ::std::os::raw::c_int,
    pub iSmCaptionHeight: ::std::os::raw::c_int,
    pub lfSmCaptionFont: LOGFONTW,
    pub iMenuWidth: ::std::os::raw::c_int,
    pub iMenuHeight: ::std::os::raw::c_int,
    pub lfMenuFont: LOGFONTW,
    pub lfStatusFont: LOGFONTW,
    pub lfMessageFont: LOGFONTW,
}
pub type NONCLIENTMETRICSW = tagNONCLIENTMETRICSW;
pub type PNONCLIENTMETRICSW = *mut tagNONCLIENTMETRICSW;
pub type LPNONCLIENTMETRICSW = *mut tagNONCLIENTMETRICSW;
pub type NONCLIENTMETRICS = NONCLIENTMETRICSA;
pub type PNONCLIENTMETRICS = PNONCLIENTMETRICSA;
pub type LPNONCLIENTMETRICS = LPNONCLIENTMETRICSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMINIMIZEDMETRICS {
    pub cbSize: UINT,
    pub iWidth: ::std::os::raw::c_int,
    pub iHorzGap: ::std::os::raw::c_int,
    pub iVertGap: ::std::os::raw::c_int,
    pub iArrange: ::std::os::raw::c_int,
}
pub type MINIMIZEDMETRICS = tagMINIMIZEDMETRICS;
pub type PMINIMIZEDMETRICS = *mut tagMINIMIZEDMETRICS;
pub type LPMINIMIZEDMETRICS = *mut tagMINIMIZEDMETRICS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagICONMETRICSA {
    pub cbSize: UINT,
    pub iHorzSpacing: ::std::os::raw::c_int,
    pub iVertSpacing: ::std::os::raw::c_int,
    pub iTitleWrap: ::std::os::raw::c_int,
    pub lfFont: LOGFONTA,
}
pub type ICONMETRICSA = tagICONMETRICSA;
pub type PICONMETRICSA = *mut tagICONMETRICSA;
pub type LPICONMETRICSA = *mut tagICONMETRICSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagICONMETRICSW {
    pub cbSize: UINT,
    pub iHorzSpacing: ::std::os::raw::c_int,
    pub iVertSpacing: ::std::os::raw::c_int,
    pub iTitleWrap: ::std::os::raw::c_int,
    pub lfFont: LOGFONTW,
}
pub type ICONMETRICSW = tagICONMETRICSW;
pub type PICONMETRICSW = *mut tagICONMETRICSW;
pub type LPICONMETRICSW = *mut tagICONMETRICSW;
pub type ICONMETRICS = ICONMETRICSA;
pub type PICONMETRICS = PICONMETRICSA;
pub type LPICONMETRICS = LPICONMETRICSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagANIMATIONINFO {
    pub cbSize: UINT,
    pub iMinAnimate: ::std::os::raw::c_int,
}
pub type ANIMATIONINFO = tagANIMATIONINFO;
pub type LPANIMATIONINFO = *mut tagANIMATIONINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSERIALKEYSA {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub lpszActivePort: LPSTR,
    pub lpszPort: LPSTR,
    pub iBaudRate: UINT,
    pub iPortState: UINT,
    pub iActive: UINT,
}
pub type SERIALKEYSA = tagSERIALKEYSA;
pub type LPSERIALKEYSA = *mut tagSERIALKEYSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSERIALKEYSW {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub lpszActivePort: LPWSTR,
    pub lpszPort: LPWSTR,
    pub iBaudRate: UINT,
    pub iPortState: UINT,
    pub iActive: UINT,
}
pub type SERIALKEYSW = tagSERIALKEYSW;
pub type LPSERIALKEYSW = *mut tagSERIALKEYSW;
pub type SERIALKEYS = SERIALKEYSA;
pub type LPSERIALKEYS = LPSERIALKEYSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagHIGHCONTRASTA {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub lpszDefaultScheme: LPSTR,
}
pub type HIGHCONTRASTA = tagHIGHCONTRASTA;
pub type LPHIGHCONTRASTA = *mut tagHIGHCONTRASTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagHIGHCONTRASTW {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub lpszDefaultScheme: LPWSTR,
}
pub type HIGHCONTRASTW = tagHIGHCONTRASTW;
pub type LPHIGHCONTRASTW = *mut tagHIGHCONTRASTW;
pub type HIGHCONTRAST = HIGHCONTRASTA;
pub type LPHIGHCONTRAST = LPHIGHCONTRASTA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _VIDEOPARAMETERS {
    pub Guid: GUID,
    pub dwOffset: ULONG,
    pub dwCommand: ULONG,
    pub dwFlags: ULONG,
    pub dwMode: ULONG,
    pub dwTVStandard: ULONG,
    pub dwAvailableModes: ULONG,
    pub dwAvailableTVStandard: ULONG,
    pub dwFlickerFilter: ULONG,
    pub dwOverScanX: ULONG,
    pub dwOverScanY: ULONG,
    pub dwMaxUnscaledX: ULONG,
    pub dwMaxUnscaledY: ULONG,
    pub dwPositionX: ULONG,
    pub dwPositionY: ULONG,
    pub dwBrightness: ULONG,
    pub dwContrast: ULONG,
    pub dwCPType: ULONG,
    pub dwCPCommand: ULONG,
    pub dwCPStandard: ULONG,
    pub dwCPKey: ULONG,
    pub bCP_APSTriggerBits: ULONG,
    pub bOEMCopyProtection: [UCHAR; 256usize],
}
pub type VIDEOPARAMETERS = _VIDEOPARAMETERS;
pub type PVIDEOPARAMETERS = *mut _VIDEOPARAMETERS;
pub type LPVIDEOPARAMETERS = *mut _VIDEOPARAMETERS;
extern "C" {
    pub fn ChangeDisplaySettingsA(lpDevMode: LPDEVMODEA, dwFlags: DWORD) -> LONG;
}
extern "C" {
    pub fn ChangeDisplaySettingsW(lpDevMode: LPDEVMODEW, dwFlags: DWORD) -> LONG;
}
extern "C" {
    pub fn ChangeDisplaySettingsExA(
        lpszDeviceName: LPCSTR,
        lpDevMode: LPDEVMODEA,
        hwnd: HWND,
        dwflags: DWORD,
        lParam: LPVOID,
    ) -> LONG;
}
extern "C" {
    pub fn ChangeDisplaySettingsExW(
        lpszDeviceName: LPCWSTR,
        lpDevMode: LPDEVMODEW,
        hwnd: HWND,
        dwflags: DWORD,
        lParam: LPVOID,
    ) -> LONG;
}
extern "C" {
    pub fn EnumDisplaySettingsA(
        lpszDeviceName: LPCSTR,
        iModeNum: DWORD,
        lpDevMode: LPDEVMODEA,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDisplaySettingsW(
        lpszDeviceName: LPCWSTR,
        iModeNum: DWORD,
        lpDevMode: LPDEVMODEW,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDisplaySettingsExA(
        lpszDeviceName: LPCSTR,
        iModeNum: DWORD,
        lpDevMode: LPDEVMODEA,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDisplaySettingsExW(
        lpszDeviceName: LPCWSTR,
        iModeNum: DWORD,
        lpDevMode: LPDEVMODEW,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDisplayDevicesA(
        lpDevice: LPCSTR,
        iDevNum: DWORD,
        lpDisplayDevice: PDISPLAY_DEVICEA,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDisplayDevicesW(
        lpDevice: LPCWSTR,
        iDevNum: DWORD,
        lpDisplayDevice: PDISPLAY_DEVICEW,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SystemParametersInfoA(
        uiAction: UINT,
        uiParam: UINT,
        pvParam: PVOID,
        fWinIni: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SystemParametersInfoW(
        uiAction: UINT,
        uiParam: UINT,
        pvParam: PVOID,
        fWinIni: UINT,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagFILTERKEYS {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub iWaitMSec: DWORD,
    pub iDelayMSec: DWORD,
    pub iRepeatMSec: DWORD,
    pub iBounceMSec: DWORD,
}
pub type FILTERKEYS = tagFILTERKEYS;
pub type LPFILTERKEYS = *mut tagFILTERKEYS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTICKYKEYS {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
}
pub type STICKYKEYS = tagSTICKYKEYS;
pub type LPSTICKYKEYS = *mut tagSTICKYKEYS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMOUSEKEYS {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub iMaxSpeed: DWORD,
    pub iTimeToMaxSpeed: DWORD,
    pub iCtrlSpeed: DWORD,
    pub dwReserved1: DWORD,
    pub dwReserved2: DWORD,
}
pub type MOUSEKEYS = tagMOUSEKEYS;
pub type LPMOUSEKEYS = *mut tagMOUSEKEYS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagACCESSTIMEOUT {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub iTimeOutMSec: DWORD,
}
pub type ACCESSTIMEOUT = tagACCESSTIMEOUT;
pub type LPACCESSTIMEOUT = *mut tagACCESSTIMEOUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSOUNDSENTRYA {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub iFSTextEffect: DWORD,
    pub iFSTextEffectMSec: DWORD,
    pub iFSTextEffectColorBits: DWORD,
    pub iFSGrafEffect: DWORD,
    pub iFSGrafEffectMSec: DWORD,
    pub iFSGrafEffectColor: DWORD,
    pub iWindowsEffect: DWORD,
    pub iWindowsEffectMSec: DWORD,
    pub lpszWindowsEffectDLL: LPSTR,
    pub iWindowsEffectOrdinal: DWORD,
}
pub type SOUNDSENTRYA = tagSOUNDSENTRYA;
pub type LPSOUNDSENTRYA = *mut tagSOUNDSENTRYA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSOUNDSENTRYW {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub iFSTextEffect: DWORD,
    pub iFSTextEffectMSec: DWORD,
    pub iFSTextEffectColorBits: DWORD,
    pub iFSGrafEffect: DWORD,
    pub iFSGrafEffectMSec: DWORD,
    pub iFSGrafEffectColor: DWORD,
    pub iWindowsEffect: DWORD,
    pub iWindowsEffectMSec: DWORD,
    pub lpszWindowsEffectDLL: LPWSTR,
    pub iWindowsEffectOrdinal: DWORD,
}
pub type SOUNDSENTRYW = tagSOUNDSENTRYW;
pub type LPSOUNDSENTRYW = *mut tagSOUNDSENTRYW;
pub type SOUNDSENTRY = SOUNDSENTRYA;
pub type LPSOUNDSENTRY = LPSOUNDSENTRYA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTOGGLEKEYS {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
}
pub type TOGGLEKEYS = tagTOGGLEKEYS;
pub type LPTOGGLEKEYS = *mut tagTOGGLEKEYS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONITORINFO {
    pub cbSize: DWORD,
    pub rcMonitor: RECT,
    pub rcWork: RECT,
    pub dwFlags: DWORD,
}
pub type MONITORINFO = tagMONITORINFO;
pub type LPMONITORINFO = *mut tagMONITORINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONITORINFOEXA {
    pub __bindgen_anon_1: tagMONITORINFOEXA__bindgen_ty_1,
    pub szDevice: [CHAR; 32usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONITORINFOEXA__bindgen_ty_1 {
    pub cbSize: DWORD,
    pub rcMonitor: RECT,
    pub rcWork: RECT,
    pub dwFlags: DWORD,
}
pub type MONITORINFOEXA = tagMONITORINFOEXA;
pub type LPMONITORINFOEXA = *mut tagMONITORINFOEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONITORINFOEXW {
    pub __bindgen_anon_1: tagMONITORINFOEXW__bindgen_ty_1,
    pub szDevice: [WCHAR; 32usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONITORINFOEXW__bindgen_ty_1 {
    pub cbSize: DWORD,
    pub rcMonitor: RECT,
    pub rcWork: RECT,
    pub dwFlags: DWORD,
}
pub type MONITORINFOEXW = tagMONITORINFOEXW;
pub type LPMONITORINFOEXW = *mut tagMONITORINFOEXW;
pub type MONITORINFOEX = MONITORINFOEXA;
pub type LPMONITORINFOEX = LPMONITORINFOEXA;
pub type MONITORENUMPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HMONITOR, arg2: HDC, arg3: LPRECT, arg4: LPARAM) -> WINBOOL,
>;
extern "C" {
    pub fn SetDebugErrorLevel(dwLevel: DWORD);
}
extern "C" {
    pub fn SetLastErrorEx(dwErrCode: DWORD, dwType: DWORD);
}
extern "C" {
    pub fn InternalGetWindowText(
        hWnd: HWND,
        pString: LPWSTR,
        cchMaxCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CancelShutdown() -> WINBOOL;
}
extern "C" {
    pub fn MonitorFromPoint(pt: POINT, dwFlags: DWORD) -> HMONITOR;
}
extern "C" {
    pub fn MonitorFromRect(lprc: LPCRECT, dwFlags: DWORD) -> HMONITOR;
}
extern "C" {
    pub fn MonitorFromWindow(hwnd: HWND, dwFlags: DWORD) -> HMONITOR;
}
extern "C" {
    pub fn EndTask(hWnd: HWND, fShutDown: WINBOOL, fForce: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GetMonitorInfoA(hMonitor: HMONITOR, lpmi: LPMONITORINFO) -> WINBOOL;
}
extern "C" {
    pub fn GetMonitorInfoW(hMonitor: HMONITOR, lpmi: LPMONITORINFO) -> WINBOOL;
}
extern "C" {
    pub fn EnumDisplayMonitors(
        hdc: HDC,
        lprcClip: LPCRECT,
        lpfnEnum: MONITORENUMPROC,
        dwData: LPARAM,
    ) -> WINBOOL;
}
pub type WINEVENTPROC = ::std::option::Option<
    unsafe extern "C" fn(
        hWinEventHook: HWINEVENTHOOK,
        event: DWORD,
        hwnd: HWND,
        idObject: LONG,
        idChild: LONG,
        idEventThread: DWORD,
        dwmsEventTime: DWORD,
    ),
>;
extern "C" {
    pub fn NotifyWinEvent(event: DWORD, hwnd: HWND, idObject: LONG, idChild: LONG);
}
extern "C" {
    pub fn SetWinEventHook(
        eventMin: DWORD,
        eventMax: DWORD,
        hmodWinEventProc: HMODULE,
        pfnWinEventProc: WINEVENTPROC,
        idProcess: DWORD,
        idThread: DWORD,
        dwFlags: DWORD,
    ) -> HWINEVENTHOOK;
}
extern "C" {
    pub fn IsWinEventHookInstalled(event: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn UnhookWinEvent(hWinEventHook: HWINEVENTHOOK) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagGUITHREADINFO {
    pub cbSize: DWORD,
    pub flags: DWORD,
    pub hwndActive: HWND,
    pub hwndFocus: HWND,
    pub hwndCapture: HWND,
    pub hwndMenuOwner: HWND,
    pub hwndMoveSize: HWND,
    pub hwndCaret: HWND,
    pub rcCaret: RECT,
}
pub type GUITHREADINFO = tagGUITHREADINFO;
pub type PGUITHREADINFO = *mut tagGUITHREADINFO;
pub type LPGUITHREADINFO = *mut tagGUITHREADINFO;
extern "C" {
    pub fn GetGUIThreadInfo(idThread: DWORD, pgui: PGUITHREADINFO) -> WINBOOL;
}
extern "C" {
    pub fn BlockInput(fBlockIt: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GetWindowModuleFileNameA(hwnd: HWND, pszFileName: LPSTR, cchFileNameMax: UINT) -> UINT;
}
extern "C" {
    pub fn GetWindowModuleFileNameW(hwnd: HWND, pszFileName: LPWSTR, cchFileNameMax: UINT) -> UINT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCURSORINFO {
    pub cbSize: DWORD,
    pub flags: DWORD,
    pub hCursor: HCURSOR,
    pub ptScreenPos: POINT,
}
pub type CURSORINFO = tagCURSORINFO;
pub type PCURSORINFO = *mut tagCURSORINFO;
pub type LPCURSORINFO = *mut tagCURSORINFO;
extern "C" {
    pub fn GetCursorInfo(pci: PCURSORINFO) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagWINDOWINFO {
    pub cbSize: DWORD,
    pub rcWindow: RECT,
    pub rcClient: RECT,
    pub dwStyle: DWORD,
    pub dwExStyle: DWORD,
    pub dwWindowStatus: DWORD,
    pub cxWindowBorders: UINT,
    pub cyWindowBorders: UINT,
    pub atomWindowType: ATOM,
    pub wCreatorVersion: WORD,
}
pub type WINDOWINFO = tagWINDOWINFO;
pub type PWINDOWINFO = *mut tagWINDOWINFO;
pub type LPWINDOWINFO = *mut tagWINDOWINFO;
extern "C" {
    pub fn GetWindowInfo(hwnd: HWND, pwi: PWINDOWINFO) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTITLEBARINFO {
    pub cbSize: DWORD,
    pub rcTitleBar: RECT,
    pub rgstate: [DWORD; 6usize],
}
pub type TITLEBARINFO = tagTITLEBARINFO;
pub type PTITLEBARINFO = *mut tagTITLEBARINFO;
pub type LPTITLEBARINFO = *mut tagTITLEBARINFO;
extern "C" {
    pub fn GetTitleBarInfo(hwnd: HWND, pti: PTITLEBARINFO) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMENUBARINFO {
    pub cbSize: DWORD,
    pub rcBar: RECT,
    pub hMenu: HMENU,
    pub hwndMenu: HWND,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub __bindgen_padding_0: [u8; 7usize],
}
impl tagMENUBARINFO {
    #[inline]
    pub fn fBarFocused(&self) -> WINBOOL {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fBarFocused(&mut self, val: WINBOOL) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fFocused(&self) -> WINBOOL {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fFocused(&mut self, val: WINBOOL) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        fBarFocused: WINBOOL,
        fFocused: WINBOOL,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let fBarFocused: u32 = unsafe { ::std::mem::transmute(fBarFocused) };
            fBarFocused as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let fFocused: u32 = unsafe { ::std::mem::transmute(fFocused) };
            fFocused as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type MENUBARINFO = tagMENUBARINFO;
pub type PMENUBARINFO = *mut tagMENUBARINFO;
pub type LPMENUBARINFO = *mut tagMENUBARINFO;
extern "C" {
    pub fn GetMenuBarInfo(hwnd: HWND, idObject: LONG, idItem: LONG, pmbi: PMENUBARINFO) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSCROLLBARINFO {
    pub cbSize: DWORD,
    pub rcScrollBar: RECT,
    pub dxyLineButton: ::std::os::raw::c_int,
    pub xyThumbTop: ::std::os::raw::c_int,
    pub xyThumbBottom: ::std::os::raw::c_int,
    pub reserved: ::std::os::raw::c_int,
    pub rgstate: [DWORD; 6usize],
}
pub type SCROLLBARINFO = tagSCROLLBARINFO;
pub type PSCROLLBARINFO = *mut tagSCROLLBARINFO;
pub type LPSCROLLBARINFO = *mut tagSCROLLBARINFO;
extern "C" {
    pub fn GetScrollBarInfo(hwnd: HWND, idObject: LONG, psbi: PSCROLLBARINFO) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCOMBOBOXINFO {
    pub cbSize: DWORD,
    pub rcItem: RECT,
    pub rcButton: RECT,
    pub stateButton: DWORD,
    pub hwndCombo: HWND,
    pub hwndItem: HWND,
    pub hwndList: HWND,
}
pub type COMBOBOXINFO = tagCOMBOBOXINFO;
pub type PCOMBOBOXINFO = *mut tagCOMBOBOXINFO;
pub type LPCOMBOBOXINFO = *mut tagCOMBOBOXINFO;
extern "C" {
    pub fn GetComboBoxInfo(hwndCombo: HWND, pcbi: PCOMBOBOXINFO) -> WINBOOL;
}
extern "C" {
    pub fn GetAncestor(hwnd: HWND, gaFlags: UINT) -> HWND;
}
extern "C" {
    pub fn RealChildWindowFromPoint(hwndParent: HWND, ptParentClientCoords: POINT) -> HWND;
}
extern "C" {
    pub fn RealGetWindowClassA(hwnd: HWND, ptszClassName: LPSTR, cchClassNameMax: UINT) -> UINT;
}
extern "C" {
    pub fn RealGetWindowClassW(hwnd: HWND, ptszClassName: LPWSTR, cchClassNameMax: UINT) -> UINT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagALTTABINFO {
    pub cbSize: DWORD,
    pub cItems: ::std::os::raw::c_int,
    pub cColumns: ::std::os::raw::c_int,
    pub cRows: ::std::os::raw::c_int,
    pub iColFocus: ::std::os::raw::c_int,
    pub iRowFocus: ::std::os::raw::c_int,
    pub cxItem: ::std::os::raw::c_int,
    pub cyItem: ::std::os::raw::c_int,
    pub ptStart: POINT,
}
pub type ALTTABINFO = tagALTTABINFO;
pub type PALTTABINFO = *mut tagALTTABINFO;
pub type LPALTTABINFO = *mut tagALTTABINFO;
extern "C" {
    pub fn GetAltTabInfoA(
        hwnd: HWND,
        iItem: ::std::os::raw::c_int,
        pati: PALTTABINFO,
        pszItemText: LPSTR,
        cchItemText: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetAltTabInfoW(
        hwnd: HWND,
        iItem: ::std::os::raw::c_int,
        pati: PALTTABINFO,
        pszItemText: LPWSTR,
        cchItemText: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetListBoxInfo(hwnd: HWND) -> DWORD;
}
extern "C" {
    pub fn LockWorkStation() -> WINBOOL;
}
extern "C" {
    pub fn UserHandleGrantAccess(hUserHandle: HANDLE, hJob: HANDLE, bGrant: WINBOOL) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HRAWINPUT__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HRAWINPUT = *mut HRAWINPUT__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRAWINPUTHEADER {
    pub dwType: DWORD,
    pub dwSize: DWORD,
    pub hDevice: HANDLE,
    pub wParam: WPARAM,
}
pub type RAWINPUTHEADER = tagRAWINPUTHEADER;
pub type PRAWINPUTHEADER = *mut tagRAWINPUTHEADER;
pub type LPRAWINPUTHEADER = *mut tagRAWINPUTHEADER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagRAWMOUSE {
    pub usFlags: USHORT,
    pub __bindgen_anon_1: tagRAWMOUSE__bindgen_ty_1,
    pub ulRawButtons: ULONG,
    pub lLastX: LONG,
    pub lLastY: LONG,
    pub ulExtraInformation: ULONG,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagRAWMOUSE__bindgen_ty_1 {
    pub ulButtons: ULONG,
    pub __bindgen_anon_1: tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1 {
    pub usButtonFlags: USHORT,
    pub usButtonData: USHORT,
}
pub type RAWMOUSE = tagRAWMOUSE;
pub type PRAWMOUSE = *mut tagRAWMOUSE;
pub type LPRAWMOUSE = *mut tagRAWMOUSE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRAWKEYBOARD {
    pub MakeCode: USHORT,
    pub Flags: USHORT,
    pub Reserved: USHORT,
    pub VKey: USHORT,
    pub Message: UINT,
    pub ExtraInformation: ULONG,
}
pub type RAWKEYBOARD = tagRAWKEYBOARD;
pub type PRAWKEYBOARD = *mut tagRAWKEYBOARD;
pub type LPRAWKEYBOARD = *mut tagRAWKEYBOARD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRAWHID {
    pub dwSizeHid: DWORD,
    pub dwCount: DWORD,
    pub bRawData: [BYTE; 1usize],
}
pub type RAWHID = tagRAWHID;
pub type PRAWHID = *mut tagRAWHID;
pub type LPRAWHID = *mut tagRAWHID;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagRAWINPUT {
    pub header: RAWINPUTHEADER,
    pub data: tagRAWINPUT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagRAWINPUT__bindgen_ty_1 {
    pub mouse: RAWMOUSE,
    pub keyboard: RAWKEYBOARD,
    pub hid: RAWHID,
    _bindgen_union_align: [u32; 6usize],
}
pub type RAWINPUT = tagRAWINPUT;
pub type PRAWINPUT = *mut tagRAWINPUT;
pub type LPRAWINPUT = *mut tagRAWINPUT;
extern "C" {
    pub fn GetRawInputData(
        hRawInput: HRAWINPUT,
        uiCommand: UINT,
        pData: LPVOID,
        pcbSize: PUINT,
        cbSizeHeader: UINT,
    ) -> UINT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRID_DEVICE_INFO_MOUSE {
    pub dwId: DWORD,
    pub dwNumberOfButtons: DWORD,
    pub dwSampleRate: DWORD,
    pub fHasHorizontalWheel: WINBOOL,
}
pub type RID_DEVICE_INFO_MOUSE = tagRID_DEVICE_INFO_MOUSE;
pub type PRID_DEVICE_INFO_MOUSE = *mut tagRID_DEVICE_INFO_MOUSE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRID_DEVICE_INFO_KEYBOARD {
    pub dwType: DWORD,
    pub dwSubType: DWORD,
    pub dwKeyboardMode: DWORD,
    pub dwNumberOfFunctionKeys: DWORD,
    pub dwNumberOfIndicators: DWORD,
    pub dwNumberOfKeysTotal: DWORD,
}
pub type RID_DEVICE_INFO_KEYBOARD = tagRID_DEVICE_INFO_KEYBOARD;
pub type PRID_DEVICE_INFO_KEYBOARD = *mut tagRID_DEVICE_INFO_KEYBOARD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRID_DEVICE_INFO_HID {
    pub dwVendorId: DWORD,
    pub dwProductId: DWORD,
    pub dwVersionNumber: DWORD,
    pub usUsagePage: USHORT,
    pub usUsage: USHORT,
}
pub type RID_DEVICE_INFO_HID = tagRID_DEVICE_INFO_HID;
pub type PRID_DEVICE_INFO_HID = *mut tagRID_DEVICE_INFO_HID;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagRID_DEVICE_INFO {
    pub cbSize: DWORD,
    pub dwType: DWORD,
    pub __bindgen_anon_1: tagRID_DEVICE_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagRID_DEVICE_INFO__bindgen_ty_1 {
    pub mouse: RID_DEVICE_INFO_MOUSE,
    pub keyboard: RID_DEVICE_INFO_KEYBOARD,
    pub hid: RID_DEVICE_INFO_HID,
    _bindgen_union_align: [u32; 6usize],
}
pub type RID_DEVICE_INFO = tagRID_DEVICE_INFO;
pub type PRID_DEVICE_INFO = *mut tagRID_DEVICE_INFO;
pub type LPRID_DEVICE_INFO = *mut tagRID_DEVICE_INFO;
extern "C" {
    pub fn GetRawInputDeviceInfoA(
        hDevice: HANDLE,
        uiCommand: UINT,
        pData: LPVOID,
        pcbSize: PUINT,
    ) -> UINT;
}
extern "C" {
    pub fn GetRawInputDeviceInfoW(
        hDevice: HANDLE,
        uiCommand: UINT,
        pData: LPVOID,
        pcbSize: PUINT,
    ) -> UINT;
}
extern "C" {
    pub fn GetRawInputBuffer(pData: PRAWINPUT, pcbSize: PUINT, cbSizeHeader: UINT) -> UINT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRAWINPUTDEVICE {
    pub usUsagePage: USHORT,
    pub usUsage: USHORT,
    pub dwFlags: DWORD,
    pub hwndTarget: HWND,
}
pub type RAWINPUTDEVICE = tagRAWINPUTDEVICE;
pub type PRAWINPUTDEVICE = *mut tagRAWINPUTDEVICE;
pub type LPRAWINPUTDEVICE = *mut tagRAWINPUTDEVICE;
pub type PCRAWINPUTDEVICE = *const RAWINPUTDEVICE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRAWINPUTDEVICELIST {
    pub hDevice: HANDLE,
    pub dwType: DWORD,
}
pub type RAWINPUTDEVICELIST = tagRAWINPUTDEVICELIST;
pub type PRAWINPUTDEVICELIST = *mut tagRAWINPUTDEVICELIST;
extern "C" {
    pub fn RegisterRawInputDevices(
        pRawInputDevices: PCRAWINPUTDEVICE,
        uiNumDevices: UINT,
        cbSize: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetRegisteredRawInputDevices(
        pRawInputDevices: PRAWINPUTDEVICE,
        puiNumDevices: PUINT,
        cbSize: UINT,
    ) -> UINT;
}
extern "C" {
    pub fn GetRawInputDeviceList(
        pRawInputDeviceList: PRAWINPUTDEVICELIST,
        puiNumDevices: PUINT,
        cbSize: UINT,
    ) -> UINT;
}
extern "C" {
    pub fn DefRawInputProc(paRawInput: *mut PRAWINPUT, nInput: INT, cbSizeHeader: UINT) -> LRESULT;
}
extern "C" {
    pub fn ShutdownBlockReasonCreate(hWnd: HWND, pwszReason: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn ShutdownBlockReasonQuery(hWnd: HWND, pwszBuff: LPWSTR, pcchBuff: *mut DWORD) -> WINBOOL;
}
extern "C" {
    pub fn ShutdownBlockReasonDestroy(hWnd: HWND) -> WINBOOL;
}
extern "C" {
    pub fn GetTimeFormatEx(
        lpLocaleName: LPCWSTR,
        dwFlags: DWORD,
        lpTime: *const SYSTEMTIME,
        lpFormat: LPCWSTR,
        lpTimeStr: LPWSTR,
        cchTime: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetDateFormatEx(
        lpLocaleName: LPCWSTR,
        dwFlags: DWORD,
        lpDate: *const SYSTEMTIME,
        lpFormat: LPCWSTR,
        lpDateStr: LPWSTR,
        cchDate: ::std::os::raw::c_int,
        lpCalendar: LPCWSTR,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetDateFormatA(
        Locale: LCID,
        dwFlags: DWORD,
        lpDate: *const SYSTEMTIME,
        lpFormat: LPCSTR,
        lpDateStr: LPSTR,
        cchDate: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetDateFormatW(
        Locale: LCID,
        dwFlags: DWORD,
        lpDate: *const SYSTEMTIME,
        lpFormat: LPCWSTR,
        lpDateStr: LPWSTR,
        cchDate: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTimeFormatA(
        Locale: LCID,
        dwFlags: DWORD,
        lpTime: *const SYSTEMTIME,
        lpFormat: LPCSTR,
        lpTimeStr: LPSTR,
        cchTime: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetTimeFormatW(
        Locale: LCID,
        dwFlags: DWORD,
        lpTime: *const SYSTEMTIME,
        lpFormat: LPCWSTR,
        lpTimeStr: LPWSTR,
        cchTime: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
pub type LGRPID = DWORD;
pub type LCTYPE = DWORD;
pub type CALTYPE = DWORD;
pub type CALID = DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _cpinfo {
    pub MaxCharSize: UINT,
    pub DefaultChar: [BYTE; 2usize],
    pub LeadByte: [BYTE; 12usize],
}
pub type CPINFO = _cpinfo;
pub type LPCPINFO = *mut _cpinfo;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _cpinfoexA {
    pub MaxCharSize: UINT,
    pub DefaultChar: [BYTE; 2usize],
    pub LeadByte: [BYTE; 12usize],
    pub UnicodeDefaultChar: WCHAR,
    pub CodePage: UINT,
    pub CodePageName: [CHAR; 260usize],
}
pub type CPINFOEXA = _cpinfoexA;
pub type LPCPINFOEXA = *mut _cpinfoexA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _cpinfoexW {
    pub MaxCharSize: UINT,
    pub DefaultChar: [BYTE; 2usize],
    pub LeadByte: [BYTE; 12usize],
    pub UnicodeDefaultChar: WCHAR,
    pub CodePage: UINT,
    pub CodePageName: [WCHAR; 260usize],
}
pub type CPINFOEXW = _cpinfoexW;
pub type LPCPINFOEXW = *mut _cpinfoexW;
pub type CPINFOEX = CPINFOEXA;
pub type LPCPINFOEX = LPCPINFOEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _numberfmtA {
    pub NumDigits: UINT,
    pub LeadingZero: UINT,
    pub Grouping: UINT,
    pub lpDecimalSep: LPSTR,
    pub lpThousandSep: LPSTR,
    pub NegativeOrder: UINT,
}
pub type NUMBERFMTA = _numberfmtA;
pub type LPNUMBERFMTA = *mut _numberfmtA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _numberfmtW {
    pub NumDigits: UINT,
    pub LeadingZero: UINT,
    pub Grouping: UINT,
    pub lpDecimalSep: LPWSTR,
    pub lpThousandSep: LPWSTR,
    pub NegativeOrder: UINT,
}
pub type NUMBERFMTW = _numberfmtW;
pub type LPNUMBERFMTW = *mut _numberfmtW;
pub type NUMBERFMT = NUMBERFMTA;
pub type LPNUMBERFMT = LPNUMBERFMTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _currencyfmtA {
    pub NumDigits: UINT,
    pub LeadingZero: UINT,
    pub Grouping: UINT,
    pub lpDecimalSep: LPSTR,
    pub lpThousandSep: LPSTR,
    pub NegativeOrder: UINT,
    pub PositiveOrder: UINT,
    pub lpCurrencySymbol: LPSTR,
}
pub type CURRENCYFMTA = _currencyfmtA;
pub type LPCURRENCYFMTA = *mut _currencyfmtA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _currencyfmtW {
    pub NumDigits: UINT,
    pub LeadingZero: UINT,
    pub Grouping: UINT,
    pub lpDecimalSep: LPWSTR,
    pub lpThousandSep: LPWSTR,
    pub NegativeOrder: UINT,
    pub PositiveOrder: UINT,
    pub lpCurrencySymbol: LPWSTR,
}
pub type CURRENCYFMTW = _currencyfmtW;
pub type LPCURRENCYFMTW = *mut _currencyfmtW;
pub type CURRENCYFMT = CURRENCYFMTA;
pub type LPCURRENCYFMT = LPCURRENCYFMTA;
pub const SYSNLS_FUNCTION_COMPARE_STRING: SYSNLS_FUNCTION = 1;
pub type SYSNLS_FUNCTION = u32;
pub type NLS_FUNCTION = DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _nlsversioninfo {
    pub dwNLSVersionInfoSize: DWORD,
    pub dwNLSVersion: DWORD,
    pub dwDefinedVersion: DWORD,
}
pub type NLSVERSIONINFO = _nlsversioninfo;
pub type LPNLSVERSIONINFO = *mut _nlsversioninfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _nlsversioninfoex {
    pub dwNLSVersionInfoSize: DWORD,
    pub dwNLSVersion: DWORD,
    pub dwDefinedVersion: DWORD,
    pub dwEffectiveId: DWORD,
    pub guidCustomVersion: GUID,
}
pub type NLSVERSIONINFOEX = _nlsversioninfoex;
pub type LPNLSVERSIONINFOEX = *mut _nlsversioninfoex;
pub type GEOID = LONG;
pub type GEOTYPE = DWORD;
pub type GEOCLASS = DWORD;
pub const SYSGEOTYPE_GEO_NATION: SYSGEOTYPE = 1;
pub const SYSGEOTYPE_GEO_LATITUDE: SYSGEOTYPE = 2;
pub const SYSGEOTYPE_GEO_LONGITUDE: SYSGEOTYPE = 3;
pub const SYSGEOTYPE_GEO_ISO2: SYSGEOTYPE = 4;
pub const SYSGEOTYPE_GEO_ISO3: SYSGEOTYPE = 5;
pub const SYSGEOTYPE_GEO_RFC1766: SYSGEOTYPE = 6;
pub const SYSGEOTYPE_GEO_LCID: SYSGEOTYPE = 7;
pub const SYSGEOTYPE_GEO_FRIENDLYNAME: SYSGEOTYPE = 8;
pub const SYSGEOTYPE_GEO_OFFICIALNAME: SYSGEOTYPE = 9;
pub const SYSGEOTYPE_GEO_TIMEZONES: SYSGEOTYPE = 10;
pub const SYSGEOTYPE_GEO_OFFICIALLANGUAGES: SYSGEOTYPE = 11;
pub const SYSGEOTYPE_GEO_ISO_UN_NUMBER: SYSGEOTYPE = 12;
pub const SYSGEOTYPE_GEO_PARENT: SYSGEOTYPE = 13;
pub type SYSGEOTYPE = u32;
pub const SYSGEOCLASS_GEOCLASS_NATION: SYSGEOCLASS = 16;
pub const SYSGEOCLASS_GEOCLASS_REGION: SYSGEOCLASS = 14;
pub const SYSGEOCLASS_GEOCLASS_ALL: SYSGEOCLASS = 0;
pub type SYSGEOCLASS = u32;
pub type LANGUAGEGROUP_ENUMPROCA = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: LGRPID,
        arg2: LPSTR,
        arg3: LPSTR,
        arg4: DWORD,
        arg5: LONG_PTR,
    ) -> WINBOOL,
>;
pub type LANGGROUPLOCALE_ENUMPROCA = ::std::option::Option<
    unsafe extern "C" fn(arg1: LGRPID, arg2: LCID, arg3: LPSTR, arg4: LONG_PTR) -> WINBOOL,
>;
pub type UILANGUAGE_ENUMPROCA =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR, arg2: LONG_PTR) -> WINBOOL>;
pub type CODEPAGE_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> WINBOOL>;
pub type DATEFMT_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> WINBOOL>;
pub type DATEFMT_ENUMPROCEXA =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR, arg2: CALID) -> WINBOOL>;
pub type TIMEFMT_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> WINBOOL>;
pub type CALINFO_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> WINBOOL>;
pub type CALINFO_ENUMPROCEXA =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR, arg2: CALID) -> WINBOOL>;
pub type LOCALE_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> WINBOOL>;
pub type LOCALE_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> WINBOOL>;
pub type LANGUAGEGROUP_ENUMPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: LGRPID,
        arg2: LPWSTR,
        arg3: LPWSTR,
        arg4: DWORD,
        arg5: LONG_PTR,
    ) -> WINBOOL,
>;
pub type LANGGROUPLOCALE_ENUMPROCW = ::std::option::Option<
    unsafe extern "C" fn(arg1: LGRPID, arg2: LCID, arg3: LPWSTR, arg4: LONG_PTR) -> WINBOOL,
>;
pub type UILANGUAGE_ENUMPROCW =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: LONG_PTR) -> WINBOOL>;
pub type CODEPAGE_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> WINBOOL>;
pub type DATEFMT_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> WINBOOL>;
pub type DATEFMT_ENUMPROCEXW =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: CALID) -> WINBOOL>;
pub type TIMEFMT_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> WINBOOL>;
pub type CALINFO_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> WINBOOL>;
pub type CALINFO_ENUMPROCEXW =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: CALID) -> WINBOOL>;
pub type GEO_ENUMPROC = ::std::option::Option<unsafe extern "C" fn(arg1: GEOID) -> WINBOOL>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILEMUIINFO {
    pub dwSize: DWORD,
    pub dwVersion: DWORD,
    pub dwFileType: DWORD,
    pub pChecksum: [BYTE; 16usize],
    pub pServiceChecksum: [BYTE; 16usize],
    pub dwLanguageNameOffset: DWORD,
    pub dwTypeIDMainSize: DWORD,
    pub dwTypeIDMainOffset: DWORD,
    pub dwTypeNameMainOffset: DWORD,
    pub dwTypeIDMUISize: DWORD,
    pub dwTypeIDMUIOffset: DWORD,
    pub dwTypeNameMUIOffset: DWORD,
    pub abBuffer: [BYTE; 8usize],
}
pub type FILEMUIINFO = _FILEMUIINFO;
pub type PFILEMUIINFO = *mut _FILEMUIINFO;
extern "C" {
    pub fn CompareStringW(
        Locale: LCID,
        dwCmpFlags: DWORD,
        lpString1: PCNZWCH,
        cchCount1: ::std::os::raw::c_int,
        lpString2: PCNZWCH,
        cchCount2: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn FoldStringW(
        dwMapFlags: DWORD,
        lpSrcStr: LPCWCH,
        cchSrc: ::std::os::raw::c_int,
        lpDestStr: LPWSTR,
        cchDest: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetStringTypeExW(
        Locale: LCID,
        dwInfoType: DWORD,
        lpSrcStr: LPCWCH,
        cchSrc: ::std::os::raw::c_int,
        lpCharType: LPWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetStringTypeW(
        dwInfoType: DWORD,
        lpSrcStr: LPCWCH,
        cchSrc: ::std::os::raw::c_int,
        lpCharType: LPWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn MultiByteToWideChar(
        CodePage: UINT,
        dwFlags: DWORD,
        lpMultiByteStr: LPCCH,
        cbMultiByte: ::std::os::raw::c_int,
        lpWideCharStr: LPWSTR,
        cchWideChar: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn WideCharToMultiByte(
        CodePage: UINT,
        dwFlags: DWORD,
        lpWideCharStr: LPCWCH,
        cchWideChar: ::std::os::raw::c_int,
        lpMultiByteStr: LPSTR,
        cbMultiByte: ::std::os::raw::c_int,
        lpDefaultChar: LPCCH,
        lpUsedDefaultChar: LPBOOL,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IsValidCodePage(CodePage: UINT) -> WINBOOL;
}
extern "C" {
    pub fn GetACP() -> UINT;
}
extern "C" {
    pub fn IsDBCSLeadByteEx(CodePage: UINT, TestChar: BYTE) -> WINBOOL;
}
extern "C" {
    pub fn GetOEMCP() -> UINT;
}
extern "C" {
    pub fn CompareStringA(
        Locale: LCID,
        dwCmpFlags: DWORD,
        lpString1: PCNZCH,
        cchCount1: ::std::os::raw::c_int,
        lpString2: PCNZCH,
        cchCount2: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn LCMapStringW(
        Locale: LCID,
        dwMapFlags: DWORD,
        lpSrcStr: LPCWSTR,
        cchSrc: ::std::os::raw::c_int,
        lpDestStr: LPWSTR,
        cchDest: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn LCMapStringA(
        Locale: LCID,
        dwMapFlags: DWORD,
        lpSrcStr: LPCSTR,
        cchSrc: ::std::os::raw::c_int,
        lpDestStr: LPSTR,
        cchDest: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetLocaleInfoW(
        Locale: LCID,
        LCType: LCTYPE,
        lpLCData: LPWSTR,
        cchData: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetLocaleInfoA(
        Locale: LCID,
        LCType: LCTYPE,
        lpLCData: LPSTR,
        cchData: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IsDBCSLeadByte(TestChar: BYTE) -> WINBOOL;
}
extern "C" {
    pub fn GetNumberFormatA(
        Locale: LCID,
        dwFlags: DWORD,
        lpValue: LPCSTR,
        lpFormat: *const NUMBERFMTA,
        lpNumberStr: LPSTR,
        cchNumber: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetNumberFormatW(
        Locale: LCID,
        dwFlags: DWORD,
        lpValue: LPCWSTR,
        lpFormat: *const NUMBERFMTW,
        lpNumberStr: LPWSTR,
        cchNumber: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetCurrencyFormatA(
        Locale: LCID,
        dwFlags: DWORD,
        lpValue: LPCSTR,
        lpFormat: *const CURRENCYFMTA,
        lpCurrencyStr: LPSTR,
        cchCurrency: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetCurrencyFormatW(
        Locale: LCID,
        dwFlags: DWORD,
        lpValue: LPCWSTR,
        lpFormat: *const CURRENCYFMTW,
        lpCurrencyStr: LPWSTR,
        cchCurrency: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumCalendarInfoA(
        lpCalInfoEnumProc: CALINFO_ENUMPROCA,
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumCalendarInfoW(
        lpCalInfoEnumProc: CALINFO_ENUMPROCW,
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumCalendarInfoExA(
        lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA,
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumCalendarInfoExW(
        lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW,
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumTimeFormatsA(
        lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumTimeFormatsW(
        lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDateFormatsA(
        lpDateFmtEnumProc: DATEFMT_ENUMPROCA,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDateFormatsW(
        lpDateFmtEnumProc: DATEFMT_ENUMPROCW,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDateFormatsExA(
        lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDateFormatsExW(
        lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn IsValidLanguageGroup(LanguageGroup: LGRPID, dwFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetNLSVersion(
        Function: NLS_FUNCTION,
        Locale: LCID,
        lpVersionInformation: LPNLSVERSIONINFO,
    ) -> WINBOOL;
}
extern "C" {
    pub fn IsNLSDefinedString(
        Function: NLS_FUNCTION,
        dwFlags: DWORD,
        lpVersionInformation: LPNLSVERSIONINFO,
        lpString: LPCWSTR,
        cchStr: INT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn IsValidLocale(Locale: LCID, dwFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetLocaleInfoA(Locale: LCID, LCType: LCTYPE, lpLCData: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetLocaleInfoW(Locale: LCID, LCType: LCTYPE, lpLCData: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetCalendarInfoA(
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
        lpCalData: LPSTR,
        cchData: ::std::os::raw::c_int,
        lpValue: LPDWORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetCalendarInfoW(
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
        lpCalData: LPWSTR,
        cchData: ::std::os::raw::c_int,
        lpValue: LPDWORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetCalendarInfoA(
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
        lpCalData: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetCalendarInfoW(
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
        lpCalData: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetGeoInfoA(
        Location: GEOID,
        GeoType: GEOTYPE,
        lpGeoData: LPSTR,
        cchData: ::std::os::raw::c_int,
        LangId: LANGID,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetGeoInfoW(
        Location: GEOID,
        GeoType: GEOTYPE,
        lpGeoData: LPWSTR,
        cchData: ::std::os::raw::c_int,
        LangId: LANGID,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumSystemGeoID(
        GeoClass: GEOCLASS,
        ParentGeoId: GEOID,
        lpGeoEnumProc: GEO_ENUMPROC,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetUserGeoID(GeoClass: GEOCLASS) -> GEOID;
}
extern "C" {
    pub fn GetCPInfo(CodePage: UINT, lpCPInfo: LPCPINFO) -> WINBOOL;
}
extern "C" {
    pub fn GetCPInfoExA(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXA) -> WINBOOL;
}
extern "C" {
    pub fn GetCPInfoExW(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXW) -> WINBOOL;
}
extern "C" {
    pub fn SetUserGeoID(GeoId: GEOID) -> WINBOOL;
}
extern "C" {
    pub fn ConvertDefaultLocale(Locale: LCID) -> LCID;
}
extern "C" {
    pub fn GetThreadLocale() -> LCID;
}
extern "C" {
    pub fn SetThreadLocale(Locale: LCID) -> WINBOOL;
}
extern "C" {
    pub fn GetSystemDefaultUILanguage() -> LANGID;
}
extern "C" {
    pub fn GetUserDefaultUILanguage() -> LANGID;
}
extern "C" {
    pub fn GetSystemDefaultLangID() -> LANGID;
}
extern "C" {
    pub fn GetUserDefaultLangID() -> LANGID;
}
extern "C" {
    pub fn GetSystemDefaultLCID() -> LCID;
}
extern "C" {
    pub fn GetUserDefaultLCID() -> LCID;
}
extern "C" {
    pub fn SetThreadUILanguage(LangId: LANGID) -> LANGID;
}
extern "C" {
    pub fn GetStringTypeExA(
        Locale: LCID,
        dwInfoType: DWORD,
        lpSrcStr: LPCSTR,
        cchSrc: ::std::os::raw::c_int,
        lpCharType: LPWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetStringTypeA(
        Locale: LCID,
        dwInfoType: DWORD,
        lpSrcStr: LPCSTR,
        cchSrc: ::std::os::raw::c_int,
        lpCharType: LPWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FoldStringA(
        dwMapFlags: DWORD,
        lpSrcStr: LPCSTR,
        cchSrc: ::std::os::raw::c_int,
        lpDestStr: LPSTR,
        cchDest: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumSystemLocalesA(lpLocaleEnumProc: LOCALE_ENUMPROCA, dwFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn EnumSystemLocalesW(lpLocaleEnumProc: LOCALE_ENUMPROCW, dwFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn EnumSystemLanguageGroupsA(
        lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumSystemLanguageGroupsW(
        lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumLanguageGroupLocalesA(
        lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA,
        LanguageGroup: LGRPID,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumLanguageGroupLocalesW(
        lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW,
        LanguageGroup: LGRPID,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumUILanguagesA(
        lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumUILanguagesW(
        lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumSystemCodePagesA(lpCodePageEnumProc: CODEPAGE_ENUMPROCA, dwFlags: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn EnumSystemCodePagesW(lpCodePageEnumProc: CODEPAGE_ENUMPROCW, dwFlags: DWORD) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COORD {
    pub X: SHORT,
    pub Y: SHORT,
}
pub type COORD = _COORD;
pub type PCOORD = *mut _COORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SMALL_RECT {
    pub Left: SHORT,
    pub Top: SHORT,
    pub Right: SHORT,
    pub Bottom: SHORT,
}
pub type SMALL_RECT = _SMALL_RECT;
pub type PSMALL_RECT = *mut _SMALL_RECT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _KEY_EVENT_RECORD {
    pub bKeyDown: WINBOOL,
    pub wRepeatCount: WORD,
    pub wVirtualKeyCode: WORD,
    pub wVirtualScanCode: WORD,
    pub uChar: _KEY_EVENT_RECORD__bindgen_ty_1,
    pub dwControlKeyState: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _KEY_EVENT_RECORD__bindgen_ty_1 {
    pub UnicodeChar: WCHAR,
    pub AsciiChar: CHAR,
    _bindgen_union_align: u16,
}
pub type KEY_EVENT_RECORD = _KEY_EVENT_RECORD;
pub type PKEY_EVENT_RECORD = *mut _KEY_EVENT_RECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MOUSE_EVENT_RECORD {
    pub dwMousePosition: COORD,
    pub dwButtonState: DWORD,
    pub dwControlKeyState: DWORD,
    pub dwEventFlags: DWORD,
}
pub type MOUSE_EVENT_RECORD = _MOUSE_EVENT_RECORD;
pub type PMOUSE_EVENT_RECORD = *mut _MOUSE_EVENT_RECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WINDOW_BUFFER_SIZE_RECORD {
    pub dwSize: COORD,
}
pub type WINDOW_BUFFER_SIZE_RECORD = _WINDOW_BUFFER_SIZE_RECORD;
pub type PWINDOW_BUFFER_SIZE_RECORD = *mut _WINDOW_BUFFER_SIZE_RECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MENU_EVENT_RECORD {
    pub dwCommandId: UINT,
}
pub type MENU_EVENT_RECORD = _MENU_EVENT_RECORD;
pub type PMENU_EVENT_RECORD = *mut _MENU_EVENT_RECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FOCUS_EVENT_RECORD {
    pub bSetFocus: WINBOOL,
}
pub type FOCUS_EVENT_RECORD = _FOCUS_EVENT_RECORD;
pub type PFOCUS_EVENT_RECORD = *mut _FOCUS_EVENT_RECORD;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _INPUT_RECORD {
    pub EventType: WORD,
    pub Event: _INPUT_RECORD__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _INPUT_RECORD__bindgen_ty_1 {
    pub KeyEvent: KEY_EVENT_RECORD,
    pub MouseEvent: MOUSE_EVENT_RECORD,
    pub WindowBufferSizeEvent: WINDOW_BUFFER_SIZE_RECORD,
    pub MenuEvent: MENU_EVENT_RECORD,
    pub FocusEvent: FOCUS_EVENT_RECORD,
    _bindgen_union_align: [u32; 4usize],
}
pub type INPUT_RECORD = _INPUT_RECORD;
pub type PINPUT_RECORD = *mut _INPUT_RECORD;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CHAR_INFO {
    pub Char: _CHAR_INFO__bindgen_ty_1,
    pub Attributes: WORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CHAR_INFO__bindgen_ty_1 {
    pub UnicodeChar: WCHAR,
    pub AsciiChar: CHAR,
    _bindgen_union_align: u16,
}
pub type CHAR_INFO = _CHAR_INFO;
pub type PCHAR_INFO = *mut _CHAR_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_SCREEN_BUFFER_INFO {
    pub dwSize: COORD,
    pub dwCursorPosition: COORD,
    pub wAttributes: WORD,
    pub srWindow: SMALL_RECT,
    pub dwMaximumWindowSize: COORD,
}
pub type CONSOLE_SCREEN_BUFFER_INFO = _CONSOLE_SCREEN_BUFFER_INFO;
pub type PCONSOLE_SCREEN_BUFFER_INFO = *mut _CONSOLE_SCREEN_BUFFER_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_CURSOR_INFO {
    pub dwSize: DWORD,
    pub bVisible: WINBOOL,
}
pub type CONSOLE_CURSOR_INFO = _CONSOLE_CURSOR_INFO;
pub type PCONSOLE_CURSOR_INFO = *mut _CONSOLE_CURSOR_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_FONT_INFO {
    pub nFont: DWORD,
    pub dwFontSize: COORD,
}
pub type CONSOLE_FONT_INFO = _CONSOLE_FONT_INFO;
pub type PCONSOLE_FONT_INFO = *mut _CONSOLE_FONT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_SELECTION_INFO {
    pub dwFlags: DWORD,
    pub dwSelectionAnchor: COORD,
    pub srSelection: SMALL_RECT,
}
pub type CONSOLE_SELECTION_INFO = _CONSOLE_SELECTION_INFO;
pub type PCONSOLE_SELECTION_INFO = *mut _CONSOLE_SELECTION_INFO;
pub type PHANDLER_ROUTINE = ::std::option::Option<unsafe extern "C" fn(CtrlType: DWORD) -> WINBOOL>;
extern "C" {
    pub fn PeekConsoleInputA(
        hConsoleInput: HANDLE,
        lpBuffer: PINPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn PeekConsoleInputW(
        hConsoleInput: HANDLE,
        lpBuffer: PINPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadConsoleInputA(
        hConsoleInput: HANDLE,
        lpBuffer: PINPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadConsoleInputW(
        hConsoleInput: HANDLE,
        lpBuffer: PINPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteConsoleInputA(
        hConsoleInput: HANDLE,
        lpBuffer: *const INPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsWritten: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteConsoleInputW(
        hConsoleInput: HANDLE,
        lpBuffer: *const INPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsWritten: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadConsoleOutputA(
        hConsoleOutput: HANDLE,
        lpBuffer: PCHAR_INFO,
        dwBufferSize: COORD,
        dwBufferCoord: COORD,
        lpReadRegion: PSMALL_RECT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadConsoleOutputW(
        hConsoleOutput: HANDLE,
        lpBuffer: PCHAR_INFO,
        dwBufferSize: COORD,
        dwBufferCoord: COORD,
        lpReadRegion: PSMALL_RECT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteConsoleOutputA(
        hConsoleOutput: HANDLE,
        lpBuffer: *const CHAR_INFO,
        dwBufferSize: COORD,
        dwBufferCoord: COORD,
        lpWriteRegion: PSMALL_RECT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteConsoleOutputW(
        hConsoleOutput: HANDLE,
        lpBuffer: *const CHAR_INFO,
        dwBufferSize: COORD,
        dwBufferCoord: COORD,
        lpWriteRegion: PSMALL_RECT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadConsoleOutputCharacterA(
        hConsoleOutput: HANDLE,
        lpCharacter: LPSTR,
        nLength: DWORD,
        dwReadCoord: COORD,
        lpNumberOfCharsRead: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadConsoleOutputCharacterW(
        hConsoleOutput: HANDLE,
        lpCharacter: LPWSTR,
        nLength: DWORD,
        dwReadCoord: COORD,
        lpNumberOfCharsRead: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadConsoleOutputAttribute(
        hConsoleOutput: HANDLE,
        lpAttribute: LPWORD,
        nLength: DWORD,
        dwReadCoord: COORD,
        lpNumberOfAttrsRead: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteConsoleOutputCharacterA(
        hConsoleOutput: HANDLE,
        lpCharacter: LPCSTR,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteConsoleOutputCharacterW(
        hConsoleOutput: HANDLE,
        lpCharacter: LPCWSTR,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteConsoleOutputAttribute(
        hConsoleOutput: HANDLE,
        lpAttribute: *const WORD,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfAttrsWritten: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FillConsoleOutputCharacterA(
        hConsoleOutput: HANDLE,
        cCharacter: CHAR,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FillConsoleOutputCharacterW(
        hConsoleOutput: HANDLE,
        cCharacter: WCHAR,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn FillConsoleOutputAttribute(
        hConsoleOutput: HANDLE,
        wAttribute: WORD,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfAttrsWritten: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetConsoleMode(hConsoleHandle: HANDLE, lpMode: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetNumberOfConsoleInputEvents(
        hConsoleInput: HANDLE,
        lpNumberOfEvents: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetConsoleScreenBufferInfo(
        hConsoleOutput: HANDLE,
        lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetLargestConsoleWindowSize(hConsoleOutput: HANDLE) -> COORD;
}
extern "C" {
    pub fn GetConsoleCursorInfo(
        hConsoleOutput: HANDLE,
        lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetCurrentConsoleFont(
        hConsoleOutput: HANDLE,
        bMaximumWindow: WINBOOL,
        lpConsoleCurrentFont: PCONSOLE_FONT_INFO,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetConsoleFontSize(hConsoleOutput: HANDLE, nFont: DWORD) -> COORD;
}
extern "C" {
    pub fn GetConsoleSelectionInfo(lpConsoleSelectionInfo: PCONSOLE_SELECTION_INFO) -> WINBOOL;
}
extern "C" {
    pub fn GetNumberOfConsoleMouseButtons(lpNumberOfMouseButtons: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleMode(hConsoleHandle: HANDLE, dwMode: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleActiveScreenBuffer(hConsoleOutput: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleCursorInfo(
        hConsoleOutput: HANDLE,
        lpConsoleCursorInfo: *const CONSOLE_CURSOR_INFO,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ScrollConsoleScreenBufferA(
        hConsoleOutput: HANDLE,
        lpScrollRectangle: *const SMALL_RECT,
        lpClipRectangle: *const SMALL_RECT,
        dwDestinationOrigin: COORD,
        lpFill: *const CHAR_INFO,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ScrollConsoleScreenBufferW(
        hConsoleOutput: HANDLE,
        lpScrollRectangle: *const SMALL_RECT,
        lpClipRectangle: *const SMALL_RECT,
        dwDestinationOrigin: COORD,
        lpFill: *const CHAR_INFO,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleWindowInfo(
        hConsoleOutput: HANDLE,
        bAbsolute: WINBOOL,
        lpConsoleWindow: *const SMALL_RECT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleCtrlHandler(HandlerRoutine: PHANDLER_ROUTINE, Add: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn GenerateConsoleCtrlEvent(dwCtrlEvent: DWORD, dwProcessGroupId: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn AllocConsole() -> WINBOOL;
}
extern "C" {
    pub fn FreeConsole() -> WINBOOL;
}
extern "C" {
    pub fn AttachConsole(dwProcessId: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn GetConsoleTitleA(lpConsoleTitle: LPSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetConsoleTitleW(lpConsoleTitle: LPWSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn ReadConsoleA(
        hConsoleInput: HANDLE,
        lpBuffer: LPVOID,
        nNumberOfCharsToRead: DWORD,
        lpNumberOfCharsRead: LPDWORD,
        lpReserved: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ReadConsoleW(
        hConsoleInput: HANDLE,
        lpBuffer: LPVOID,
        nNumberOfCharsToRead: DWORD,
        lpNumberOfCharsRead: LPDWORD,
        lpReserved: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteConsoleA(
        hConsoleOutput: HANDLE,
        lpBuffer: *const ::std::os::raw::c_void,
        nNumberOfCharsToWrite: DWORD,
        lpNumberOfCharsWritten: LPDWORD,
        lpReserved: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn WriteConsoleW(
        hConsoleOutput: HANDLE,
        lpBuffer: *const ::std::os::raw::c_void,
        nNumberOfCharsToWrite: DWORD,
        lpNumberOfCharsWritten: LPDWORD,
        lpReserved: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateConsoleScreenBuffer(
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        lpSecurityAttributes: *const SECURITY_ATTRIBUTES,
        dwFlags: DWORD,
        lpScreenBufferData: LPVOID,
    ) -> HANDLE;
}
extern "C" {
    pub fn GetConsoleCP() -> UINT;
}
extern "C" {
    pub fn SetConsoleCP(wCodePageID: UINT) -> WINBOOL;
}
extern "C" {
    pub fn GetConsoleOutputCP() -> UINT;
}
extern "C" {
    pub fn SetConsoleOutputCP(wCodePageID: UINT) -> WINBOOL;
}
extern "C" {
    pub fn GetConsoleDisplayMode(lpModeFlags: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleDisplayMode(
        hConsoleOutput: HANDLE,
        dwFlags: DWORD,
        lpNewScreenBufferDimensions: PCOORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetConsoleWindow() -> HWND;
}
extern "C" {
    pub fn GetConsoleProcessList(lpdwProcessList: LPDWORD, dwProcessCount: DWORD) -> DWORD;
}
extern "C" {
    pub fn AddConsoleAliasA(Source: LPSTR, Target: LPSTR, ExeName: LPSTR) -> WINBOOL;
}
extern "C" {
    pub fn AddConsoleAliasW(Source: LPWSTR, Target: LPWSTR, ExeName: LPWSTR) -> WINBOOL;
}
extern "C" {
    pub fn GetConsoleAliasA(
        Source: LPSTR,
        TargetBuffer: LPSTR,
        TargetBufferLength: DWORD,
        ExeName: LPSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetConsoleAliasW(
        Source: LPWSTR,
        TargetBuffer: LPWSTR,
        TargetBufferLength: DWORD,
        ExeName: LPWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetConsoleAliasesLengthA(ExeName: LPSTR) -> DWORD;
}
extern "C" {
    pub fn GetConsoleAliasesLengthW(ExeName: LPWSTR) -> DWORD;
}
extern "C" {
    pub fn GetConsoleAliasExesLengthA() -> DWORD;
}
extern "C" {
    pub fn GetConsoleAliasExesLengthW() -> DWORD;
}
extern "C" {
    pub fn GetConsoleAliasesA(
        AliasBuffer: LPSTR,
        AliasBufferLength: DWORD,
        ExeName: LPSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetConsoleAliasesW(
        AliasBuffer: LPWSTR,
        AliasBufferLength: DWORD,
        ExeName: LPWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetConsoleAliasExesA(ExeNameBuffer: LPSTR, ExeNameBufferLength: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetConsoleAliasExesW(ExeNameBuffer: LPWSTR, ExeNameBufferLength: DWORD) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_FONT_INFOEX {
    pub cbSize: ULONG,
    pub nFont: DWORD,
    pub dwFontSize: COORD,
    pub FontFamily: UINT,
    pub FontWeight: UINT,
    pub FaceName: [WCHAR; 32usize],
}
pub type CONSOLE_FONT_INFOEX = _CONSOLE_FONT_INFOEX;
pub type PCONSOLE_FONT_INFOEX = *mut _CONSOLE_FONT_INFOEX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_HISTORY_INFO {
    pub cbSize: UINT,
    pub HistoryBufferSize: UINT,
    pub NumberOfHistoryBuffers: UINT,
    pub dwFlags: DWORD,
}
pub type CONSOLE_HISTORY_INFO = _CONSOLE_HISTORY_INFO;
pub type PCONSOLE_HISTORY_INFO = *mut _CONSOLE_HISTORY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_READCONSOLE_CONTROL {
    pub nLength: ULONG,
    pub nInitialChars: ULONG,
    pub dwCtrlWakeupMask: ULONG,
    pub dwControlKeyState: ULONG,
}
pub type CONSOLE_READCONSOLE_CONTROL = _CONSOLE_READCONSOLE_CONTROL;
pub type PCONSOLE_READCONSOLE_CONTROL = *mut _CONSOLE_READCONSOLE_CONTROL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_SCREEN_BUFFER_INFOEX {
    pub cbSize: ULONG,
    pub dwSize: COORD,
    pub dwCursorPosition: COORD,
    pub wAttributes: WORD,
    pub srWindow: SMALL_RECT,
    pub dwMaximumWindowSize: COORD,
    pub wPopupAttributes: WORD,
    pub bFullscreenSupported: WINBOOL,
    pub ColorTable: [COLORREF; 16usize],
}
pub type CONSOLE_SCREEN_BUFFER_INFOEX = _CONSOLE_SCREEN_BUFFER_INFOEX;
pub type PCONSOLE_SCREEN_BUFFER_INFOEX = *mut _CONSOLE_SCREEN_BUFFER_INFOEX;
extern "C" {
    pub fn GetConsoleHistoryInfo(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO) -> WINBOOL;
}
extern "C" {
    pub fn GetConsoleScreenBufferInfoEx(
        hConsoleOutput: HANDLE,
        lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetCurrentConsoleFontEx(
        hConsoleOutput: HANDLE,
        bMaximumWindow: WINBOOL,
        lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleHistoryInfo(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO) -> WINBOOL;
}
extern "C" {
    pub fn SetConsoleScreenBufferInfoEx(
        hConsoleOutput: HANDLE,
        lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetCurrentConsoleFontEx(
        hConsoleOutput: HANDLE,
        bMaximumWindow: WINBOOL,
        lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX,
    ) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagVS_FIXEDFILEINFO {
    pub dwSignature: DWORD,
    pub dwStrucVersion: DWORD,
    pub dwFileVersionMS: DWORD,
    pub dwFileVersionLS: DWORD,
    pub dwProductVersionMS: DWORD,
    pub dwProductVersionLS: DWORD,
    pub dwFileFlagsMask: DWORD,
    pub dwFileFlags: DWORD,
    pub dwFileOS: DWORD,
    pub dwFileType: DWORD,
    pub dwFileSubtype: DWORD,
    pub dwFileDateMS: DWORD,
    pub dwFileDateLS: DWORD,
}
pub type VS_FIXEDFILEINFO = tagVS_FIXEDFILEINFO;
extern "C" {
    pub fn VerFindFileA(
        uFlags: DWORD,
        szFileName: LPSTR,
        szWinDir: LPSTR,
        szAppDir: LPSTR,
        szCurDir: LPSTR,
        lpuCurDirLen: PUINT,
        szDestDir: LPSTR,
        lpuDestDirLen: PUINT,
    ) -> DWORD;
}
extern "C" {
    pub fn VerFindFileW(
        uFlags: DWORD,
        szFileName: LPWSTR,
        szWinDir: LPWSTR,
        szAppDir: LPWSTR,
        szCurDir: LPWSTR,
        lpuCurDirLen: PUINT,
        szDestDir: LPWSTR,
        lpuDestDirLen: PUINT,
    ) -> DWORD;
}
extern "C" {
    pub fn VerInstallFileA(
        uFlags: DWORD,
        szSrcFileName: LPSTR,
        szDestFileName: LPSTR,
        szSrcDir: LPSTR,
        szDestDir: LPSTR,
        szCurDir: LPSTR,
        szTmpFile: LPSTR,
        lpuTmpFileLen: PUINT,
    ) -> DWORD;
}
extern "C" {
    pub fn VerInstallFileW(
        uFlags: DWORD,
        szSrcFileName: LPWSTR,
        szDestFileName: LPWSTR,
        szSrcDir: LPWSTR,
        szDestDir: LPWSTR,
        szCurDir: LPWSTR,
        szTmpFile: LPWSTR,
        lpuTmpFileLen: PUINT,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFileVersionInfoSizeA(lptstrFilename: LPCSTR, lpdwHandle: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn GetFileVersionInfoSizeW(lptstrFilename: LPCWSTR, lpdwHandle: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn GetFileVersionInfoA(
        lptstrFilename: LPCSTR,
        dwHandle: DWORD,
        dwLen: DWORD,
        lpData: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetFileVersionInfoW(
        lptstrFilename: LPCWSTR,
        dwHandle: DWORD,
        dwLen: DWORD,
        lpData: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn VerLanguageNameA(wLang: DWORD, szLang: LPSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn VerLanguageNameW(wLang: DWORD, szLang: LPWSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn VerQueryValueA(
        pBlock: LPCVOID,
        lpSubBlock: LPCSTR,
        lplpBuffer: *mut LPVOID,
        puLen: PUINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn VerQueryValueW(
        pBlock: LPCVOID,
        lpSubBlock: LPCWSTR,
        lplpBuffer: *mut LPVOID,
        puLen: PUINT,
    ) -> WINBOOL;
}
pub type REGSAM = ACCESS_MASK;
pub type LSTATUS = LONG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct val_context {
    pub valuelen: ::std::os::raw::c_int,
    pub value_context: LPVOID,
    pub val_buff_ptr: LPVOID,
}
pub type PVALCONTEXT = *mut val_context;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct pvalueA {
    pub pv_valuename: LPSTR,
    pub pv_valuelen: ::std::os::raw::c_int,
    pub pv_value_context: LPVOID,
    pub pv_type: DWORD,
}
pub type PVALUEA = pvalueA;
pub type PPVALUEA = *mut pvalueA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct pvalueW {
    pub pv_valuename: LPWSTR,
    pub pv_valuelen: ::std::os::raw::c_int,
    pub pv_value_context: LPVOID,
    pub pv_type: DWORD,
}
pub type PVALUEW = pvalueW;
pub type PPVALUEW = *mut pvalueW;
pub type PVALUE = PVALUEA;
pub type PPVALUE = PPVALUEA;
pub type PQUERYHANDLER = ::std::option::Option<unsafe extern "C" fn() -> DWORD>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct provider_info {
    pub pi_R0_1val: PQUERYHANDLER,
    pub pi_R0_allvals: PQUERYHANDLER,
    pub pi_R3_1val: PQUERYHANDLER,
    pub pi_R3_allvals: PQUERYHANDLER,
    pub pi_flags: DWORD,
    pub pi_key_context: LPVOID,
}
pub type REG_PROVIDER = provider_info;
pub type PPROVIDER = *mut provider_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct value_entA {
    pub ve_valuename: LPSTR,
    pub ve_valuelen: DWORD,
    pub ve_valueptr: DWORD_PTR,
    pub ve_type: DWORD,
}
pub type VALENTA = value_entA;
pub type PVALENTA = *mut value_entA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct value_entW {
    pub ve_valuename: LPWSTR,
    pub ve_valuelen: DWORD,
    pub ve_valueptr: DWORD_PTR,
    pub ve_type: DWORD,
}
pub type VALENTW = value_entW;
pub type PVALENTW = *mut value_entW;
pub type VALENT = VALENTA;
pub type PVALENT = PVALENTA;
extern "C" {
    pub fn RegCloseKey(hKey: HKEY) -> LONG;
}
extern "C" {
    pub fn RegOverridePredefKey(hKey: HKEY, hNewHKey: HKEY) -> LONG;
}
extern "C" {
    pub fn RegOpenUserClassesRoot(
        hToken: HANDLE,
        dwOptions: DWORD,
        samDesired: REGSAM,
        phkResult: PHKEY,
    ) -> LONG;
}
extern "C" {
    pub fn RegOpenCurrentUser(samDesired: REGSAM, phkResult: PHKEY) -> LONG;
}
extern "C" {
    pub fn RegDisablePredefinedCache() -> LONG;
}
extern "C" {
    pub fn RegDisablePredefinedCacheEx() -> LONG;
}
extern "C" {
    pub fn RegConnectRegistryA(lpMachineName: LPCSTR, hKey: HKEY, phkResult: PHKEY) -> LONG;
}
extern "C" {
    pub fn RegConnectRegistryW(lpMachineName: LPCWSTR, hKey: HKEY, phkResult: PHKEY) -> LONG;
}
extern "C" {
    pub fn RegConnectRegistryExA(
        lpMachineName: LPCSTR,
        hKey: HKEY,
        Flags: ULONG,
        phkResult: PHKEY,
    ) -> LONG;
}
extern "C" {
    pub fn RegConnectRegistryExW(
        lpMachineName: LPCWSTR,
        hKey: HKEY,
        Flags: ULONG,
        phkResult: PHKEY,
    ) -> LONG;
}
extern "C" {
    pub fn RegCreateKeyA(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY) -> LONG;
}
extern "C" {
    pub fn RegCreateKeyW(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY) -> LONG;
}
extern "C" {
    pub fn RegCreateKeyExA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        Reserved: DWORD,
        lpClass: LPSTR,
        dwOptions: DWORD,
        samDesired: REGSAM,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        phkResult: PHKEY,
        lpdwDisposition: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegCreateKeyExW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        Reserved: DWORD,
        lpClass: LPWSTR,
        dwOptions: DWORD,
        samDesired: REGSAM,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        phkResult: PHKEY,
        lpdwDisposition: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegDeleteKeyA(hKey: HKEY, lpSubKey: LPCSTR) -> LONG;
}
extern "C" {
    pub fn RegDeleteKeyW(hKey: HKEY, lpSubKey: LPCWSTR) -> LONG;
}
extern "C" {
    pub fn RegDeleteKeyExA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        samDesired: REGSAM,
        Reserved: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegDeleteKeyExW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        samDesired: REGSAM,
        Reserved: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegDisableReflectionKey(hBase: HKEY) -> LONG;
}
extern "C" {
    pub fn RegEnableReflectionKey(hBase: HKEY) -> LONG;
}
extern "C" {
    pub fn RegQueryReflectionKey(hBase: HKEY, bIsReflectionDisabled: *mut WINBOOL) -> LONG;
}
extern "C" {
    pub fn RegDeleteValueA(hKey: HKEY, lpValueName: LPCSTR) -> LONG;
}
extern "C" {
    pub fn RegDeleteValueW(hKey: HKEY, lpValueName: LPCWSTR) -> LONG;
}
extern "C" {
    pub fn RegEnumKeyA(hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, cchName: DWORD) -> LONG;
}
extern "C" {
    pub fn RegEnumKeyW(hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, cchName: DWORD) -> LONG;
}
extern "C" {
    pub fn RegEnumKeyExA(
        hKey: HKEY,
        dwIndex: DWORD,
        lpName: LPSTR,
        lpcchName: LPDWORD,
        lpReserved: LPDWORD,
        lpClass: LPSTR,
        lpcchClass: LPDWORD,
        lpftLastWriteTime: PFILETIME,
    ) -> LONG;
}
extern "C" {
    pub fn RegEnumKeyExW(
        hKey: HKEY,
        dwIndex: DWORD,
        lpName: LPWSTR,
        lpcchName: LPDWORD,
        lpReserved: LPDWORD,
        lpClass: LPWSTR,
        lpcchClass: LPDWORD,
        lpftLastWriteTime: PFILETIME,
    ) -> LONG;
}
extern "C" {
    pub fn RegEnumValueA(
        hKey: HKEY,
        dwIndex: DWORD,
        lpValueName: LPSTR,
        lpcchValueName: LPDWORD,
        lpReserved: LPDWORD,
        lpType: LPDWORD,
        lpData: LPBYTE,
        lpcbData: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegEnumValueW(
        hKey: HKEY,
        dwIndex: DWORD,
        lpValueName: LPWSTR,
        lpcchValueName: LPDWORD,
        lpReserved: LPDWORD,
        lpType: LPDWORD,
        lpData: LPBYTE,
        lpcbData: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegFlushKey(hKey: HKEY) -> LONG;
}
extern "C" {
    pub fn RegGetKeySecurity(
        hKey: HKEY,
        SecurityInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        lpcbSecurityDescriptor: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegLoadKeyA(hKey: HKEY, lpSubKey: LPCSTR, lpFile: LPCSTR) -> LONG;
}
extern "C" {
    pub fn RegLoadKeyW(hKey: HKEY, lpSubKey: LPCWSTR, lpFile: LPCWSTR) -> LONG;
}
extern "C" {
    pub fn RegNotifyChangeKeyValue(
        hKey: HKEY,
        bWatchSubtree: WINBOOL,
        dwNotifyFilter: DWORD,
        hEvent: HANDLE,
        fAsynchronous: WINBOOL,
    ) -> LONG;
}
extern "C" {
    pub fn RegOpenKeyA(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY) -> LONG;
}
extern "C" {
    pub fn RegOpenKeyW(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY) -> LONG;
}
extern "C" {
    pub fn RegOpenKeyExA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        ulOptions: DWORD,
        samDesired: REGSAM,
        phkResult: PHKEY,
    ) -> LONG;
}
extern "C" {
    pub fn RegOpenKeyExW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        ulOptions: DWORD,
        samDesired: REGSAM,
        phkResult: PHKEY,
    ) -> LONG;
}
extern "C" {
    pub fn RegQueryInfoKeyA(
        hKey: HKEY,
        lpClass: LPSTR,
        lpcchClass: LPDWORD,
        lpReserved: LPDWORD,
        lpcSubKeys: LPDWORD,
        lpcbMaxSubKeyLen: LPDWORD,
        lpcbMaxClassLen: LPDWORD,
        lpcValues: LPDWORD,
        lpcbMaxValueNameLen: LPDWORD,
        lpcbMaxValueLen: LPDWORD,
        lpcbSecurityDescriptor: LPDWORD,
        lpftLastWriteTime: PFILETIME,
    ) -> LONG;
}
extern "C" {
    pub fn RegQueryInfoKeyW(
        hKey: HKEY,
        lpClass: LPWSTR,
        lpcchClass: LPDWORD,
        lpReserved: LPDWORD,
        lpcSubKeys: LPDWORD,
        lpcbMaxSubKeyLen: LPDWORD,
        lpcbMaxClassLen: LPDWORD,
        lpcValues: LPDWORD,
        lpcbMaxValueNameLen: LPDWORD,
        lpcbMaxValueLen: LPDWORD,
        lpcbSecurityDescriptor: LPDWORD,
        lpftLastWriteTime: PFILETIME,
    ) -> LONG;
}
extern "C" {
    pub fn RegQueryValueA(hKey: HKEY, lpSubKey: LPCSTR, lpData: LPSTR, lpcbData: PLONG) -> LONG;
}
extern "C" {
    pub fn RegQueryValueW(hKey: HKEY, lpSubKey: LPCWSTR, lpData: LPWSTR, lpcbData: PLONG) -> LONG;
}
extern "C" {
    pub fn RegQueryMultipleValuesA(
        hKey: HKEY,
        val_list: PVALENTA,
        num_vals: DWORD,
        lpValueBuf: LPSTR,
        ldwTotsize: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegQueryMultipleValuesW(
        hKey: HKEY,
        val_list: PVALENTW,
        num_vals: DWORD,
        lpValueBuf: LPWSTR,
        ldwTotsize: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegQueryValueExA(
        hKey: HKEY,
        lpValueName: LPCSTR,
        lpReserved: LPDWORD,
        lpType: LPDWORD,
        lpData: LPBYTE,
        lpcbData: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegQueryValueExW(
        hKey: HKEY,
        lpValueName: LPCWSTR,
        lpReserved: LPDWORD,
        lpType: LPDWORD,
        lpData: LPBYTE,
        lpcbData: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegReplaceKeyA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        lpNewFile: LPCSTR,
        lpOldFile: LPCSTR,
    ) -> LONG;
}
extern "C" {
    pub fn RegReplaceKeyW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        lpNewFile: LPCWSTR,
        lpOldFile: LPCWSTR,
    ) -> LONG;
}
extern "C" {
    pub fn RegRestoreKeyA(hKey: HKEY, lpFile: LPCSTR, dwFlags: DWORD) -> LONG;
}
extern "C" {
    pub fn RegRestoreKeyW(hKey: HKEY, lpFile: LPCWSTR, dwFlags: DWORD) -> LONG;
}
extern "C" {
    pub fn RegSaveKeyA(
        hKey: HKEY,
        lpFile: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> LONG;
}
extern "C" {
    pub fn RegSaveKeyW(
        hKey: HKEY,
        lpFile: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> LONG;
}
extern "C" {
    pub fn RegSetKeySecurity(
        hKey: HKEY,
        SecurityInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    ) -> LONG;
}
extern "C" {
    pub fn RegSetValueA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        dwType: DWORD,
        lpData: LPCSTR,
        cbData: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegSetValueW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        dwType: DWORD,
        lpData: LPCWSTR,
        cbData: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegSetValueExA(
        hKey: HKEY,
        lpValueName: LPCSTR,
        Reserved: DWORD,
        dwType: DWORD,
        lpData: *const BYTE,
        cbData: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegSetValueExW(
        hKey: HKEY,
        lpValueName: LPCWSTR,
        Reserved: DWORD,
        dwType: DWORD,
        lpData: *const BYTE,
        cbData: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegUnLoadKeyA(hKey: HKEY, lpSubKey: LPCSTR) -> LONG;
}
extern "C" {
    pub fn RegUnLoadKeyW(hKey: HKEY, lpSubKey: LPCWSTR) -> LONG;
}
extern "C" {
    pub fn RegGetValueA(
        hkey: HKEY,
        lpSubKey: LPCSTR,
        lpValue: LPCSTR,
        dwFlags: DWORD,
        pdwType: LPDWORD,
        pvData: PVOID,
        pcbData: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegGetValueW(
        hkey: HKEY,
        lpSubKey: LPCWSTR,
        lpValue: LPCWSTR,
        dwFlags: DWORD,
        pdwType: LPDWORD,
        pvData: PVOID,
        pcbData: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn InitiateSystemShutdownA(
        lpMachineName: LPSTR,
        lpMessage: LPSTR,
        dwTimeout: DWORD,
        bForceAppsClosed: WINBOOL,
        bRebootAfterShutdown: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn InitiateSystemShutdownW(
        lpMachineName: LPWSTR,
        lpMessage: LPWSTR,
        dwTimeout: DWORD,
        bForceAppsClosed: WINBOOL,
        bRebootAfterShutdown: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn AbortSystemShutdownA(lpMachineName: LPSTR) -> WINBOOL;
}
extern "C" {
    pub fn AbortSystemShutdownW(lpMachineName: LPWSTR) -> WINBOOL;
}
extern "C" {
    pub fn InitiateSystemShutdownExA(
        lpMachineName: LPSTR,
        lpMessage: LPSTR,
        dwTimeout: DWORD,
        bForceAppsClosed: WINBOOL,
        bRebootAfterShutdown: WINBOOL,
        dwReason: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn InitiateSystemShutdownExW(
        lpMachineName: LPWSTR,
        lpMessage: LPWSTR,
        dwTimeout: DWORD,
        bForceAppsClosed: WINBOOL,
        bRebootAfterShutdown: WINBOOL,
        dwReason: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn RegSaveKeyExA(
        hKey: HKEY,
        lpFile: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        Flags: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn RegSaveKeyExW(
        hKey: HKEY,
        lpFile: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        Flags: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn Wow64Win32ApiEntry(dwFuncNumber: DWORD, dwFlag: DWORD, dwRes: DWORD) -> LONG;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NETRESOURCEA {
    pub dwScope: DWORD,
    pub dwType: DWORD,
    pub dwDisplayType: DWORD,
    pub dwUsage: DWORD,
    pub lpLocalName: LPSTR,
    pub lpRemoteName: LPSTR,
    pub lpComment: LPSTR,
    pub lpProvider: LPSTR,
}
pub type NETRESOURCEA = _NETRESOURCEA;
pub type LPNETRESOURCEA = *mut _NETRESOURCEA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NETRESOURCEW {
    pub dwScope: DWORD,
    pub dwType: DWORD,
    pub dwDisplayType: DWORD,
    pub dwUsage: DWORD,
    pub lpLocalName: LPWSTR,
    pub lpRemoteName: LPWSTR,
    pub lpComment: LPWSTR,
    pub lpProvider: LPWSTR,
}
pub type NETRESOURCEW = _NETRESOURCEW;
pub type LPNETRESOURCEW = *mut _NETRESOURCEW;
pub type NETRESOURCE = NETRESOURCEA;
pub type LPNETRESOURCE = LPNETRESOURCEA;
extern "C" {
    pub fn WNetAddConnectionA(
        lpRemoteName: LPCSTR,
        lpPassword: LPCSTR,
        lpLocalName: LPCSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetAddConnectionW(
        lpRemoteName: LPCWSTR,
        lpPassword: LPCWSTR,
        lpLocalName: LPCWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetAddConnection2A(
        lpNetResource: LPNETRESOURCEA,
        lpPassword: LPCSTR,
        lpUserName: LPCSTR,
        dwFlags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetAddConnection2W(
        lpNetResource: LPNETRESOURCEW,
        lpPassword: LPCWSTR,
        lpUserName: LPCWSTR,
        dwFlags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetAddConnection3A(
        hwndOwner: HWND,
        lpNetResource: LPNETRESOURCEA,
        lpPassword: LPCSTR,
        lpUserName: LPCSTR,
        dwFlags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetAddConnection3W(
        hwndOwner: HWND,
        lpNetResource: LPNETRESOURCEW,
        lpPassword: LPCWSTR,
        lpUserName: LPCWSTR,
        dwFlags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetCancelConnectionA(lpName: LPCSTR, fForce: WINBOOL) -> DWORD;
}
extern "C" {
    pub fn WNetCancelConnectionW(lpName: LPCWSTR, fForce: WINBOOL) -> DWORD;
}
extern "C" {
    pub fn WNetCancelConnection2A(lpName: LPCSTR, dwFlags: DWORD, fForce: WINBOOL) -> DWORD;
}
extern "C" {
    pub fn WNetCancelConnection2W(lpName: LPCWSTR, dwFlags: DWORD, fForce: WINBOOL) -> DWORD;
}
extern "C" {
    pub fn WNetGetConnectionA(
        lpLocalName: LPCSTR,
        lpRemoteName: LPSTR,
        lpnLength: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetGetConnectionW(
        lpLocalName: LPCWSTR,
        lpRemoteName: LPWSTR,
        lpnLength: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetRestoreConnectionA(hwndParent: HWND, lpDevice: LPCSTR) -> DWORD;
}
extern "C" {
    pub fn WNetUseConnectionA(
        hwndOwner: HWND,
        lpNetResource: LPNETRESOURCEA,
        lpPassword: LPCSTR,
        lpUserID: LPCSTR,
        dwFlags: DWORD,
        lpAccessName: LPSTR,
        lpBufferSize: LPDWORD,
        lpResult: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetUseConnectionW(
        hwndOwner: HWND,
        lpNetResource: LPNETRESOURCEW,
        lpPassword: LPCWSTR,
        lpUserID: LPCWSTR,
        dwFlags: DWORD,
        lpAccessName: LPWSTR,
        lpBufferSize: LPDWORD,
        lpResult: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetConnectionDialog(hwnd: HWND, dwType: DWORD) -> DWORD;
}
extern "C" {
    pub fn WNetDisconnectDialog(hwnd: HWND, dwType: DWORD) -> DWORD;
}
extern "C" {
    pub fn WNetRestoreConnectionW(hwndParent: HWND, lpDevice: LPCWSTR) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONNECTDLGSTRUCTA {
    pub cbStructure: DWORD,
    pub hwndOwner: HWND,
    pub lpConnRes: LPNETRESOURCEA,
    pub dwFlags: DWORD,
    pub dwDevNum: DWORD,
}
pub type CONNECTDLGSTRUCTA = _CONNECTDLGSTRUCTA;
pub type LPCONNECTDLGSTRUCTA = *mut _CONNECTDLGSTRUCTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONNECTDLGSTRUCTW {
    pub cbStructure: DWORD,
    pub hwndOwner: HWND,
    pub lpConnRes: LPNETRESOURCEW,
    pub dwFlags: DWORD,
    pub dwDevNum: DWORD,
}
pub type CONNECTDLGSTRUCTW = _CONNECTDLGSTRUCTW;
pub type LPCONNECTDLGSTRUCTW = *mut _CONNECTDLGSTRUCTW;
pub type CONNECTDLGSTRUCT = CONNECTDLGSTRUCTA;
pub type LPCONNECTDLGSTRUCT = LPCONNECTDLGSTRUCTA;
extern "C" {
    pub fn WNetConnectionDialog1A(lpConnDlgStruct: LPCONNECTDLGSTRUCTA) -> DWORD;
}
extern "C" {
    pub fn WNetConnectionDialog1W(lpConnDlgStruct: LPCONNECTDLGSTRUCTW) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISCDLGSTRUCTA {
    pub cbStructure: DWORD,
    pub hwndOwner: HWND,
    pub lpLocalName: LPSTR,
    pub lpRemoteName: LPSTR,
    pub dwFlags: DWORD,
}
pub type DISCDLGSTRUCTA = _DISCDLGSTRUCTA;
pub type LPDISCDLGSTRUCTA = *mut _DISCDLGSTRUCTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISCDLGSTRUCTW {
    pub cbStructure: DWORD,
    pub hwndOwner: HWND,
    pub lpLocalName: LPWSTR,
    pub lpRemoteName: LPWSTR,
    pub dwFlags: DWORD,
}
pub type DISCDLGSTRUCTW = _DISCDLGSTRUCTW;
pub type LPDISCDLGSTRUCTW = *mut _DISCDLGSTRUCTW;
pub type DISCDLGSTRUCT = DISCDLGSTRUCTA;
pub type LPDISCDLGSTRUCT = LPDISCDLGSTRUCTA;
extern "C" {
    pub fn WNetDisconnectDialog1A(lpConnDlgStruct: LPDISCDLGSTRUCTA) -> DWORD;
}
extern "C" {
    pub fn WNetDisconnectDialog1W(lpConnDlgStruct: LPDISCDLGSTRUCTW) -> DWORD;
}
extern "C" {
    pub fn WNetOpenEnumA(
        dwScope: DWORD,
        dwType: DWORD,
        dwUsage: DWORD,
        lpNetResource: LPNETRESOURCEA,
        lphEnum: LPHANDLE,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetOpenEnumW(
        dwScope: DWORD,
        dwType: DWORD,
        dwUsage: DWORD,
        lpNetResource: LPNETRESOURCEW,
        lphEnum: LPHANDLE,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetEnumResourceA(
        hEnum: HANDLE,
        lpcCount: LPDWORD,
        lpBuffer: LPVOID,
        lpBufferSize: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetEnumResourceW(
        hEnum: HANDLE,
        lpcCount: LPDWORD,
        lpBuffer: LPVOID,
        lpBufferSize: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetCloseEnum(hEnum: HANDLE) -> DWORD;
}
extern "C" {
    pub fn WNetGetResourceParentA(
        lpNetResource: LPNETRESOURCEA,
        lpBuffer: LPVOID,
        lpcbBuffer: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetGetResourceParentW(
        lpNetResource: LPNETRESOURCEW,
        lpBuffer: LPVOID,
        lpcbBuffer: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetGetResourceInformationA(
        lpNetResource: LPNETRESOURCEA,
        lpBuffer: LPVOID,
        lpcbBuffer: LPDWORD,
        lplpSystem: *mut LPSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetGetResourceInformationW(
        lpNetResource: LPNETRESOURCEW,
        lpBuffer: LPVOID,
        lpcbBuffer: LPDWORD,
        lplpSystem: *mut LPWSTR,
    ) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _UNIVERSAL_NAME_INFOA {
    pub lpUniversalName: LPSTR,
}
pub type UNIVERSAL_NAME_INFOA = _UNIVERSAL_NAME_INFOA;
pub type LPUNIVERSAL_NAME_INFOA = *mut _UNIVERSAL_NAME_INFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _UNIVERSAL_NAME_INFOW {
    pub lpUniversalName: LPWSTR,
}
pub type UNIVERSAL_NAME_INFOW = _UNIVERSAL_NAME_INFOW;
pub type LPUNIVERSAL_NAME_INFOW = *mut _UNIVERSAL_NAME_INFOW;
pub type UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFOA;
pub type LPUNIVERSAL_NAME_INFO = LPUNIVERSAL_NAME_INFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REMOTE_NAME_INFOA {
    pub lpUniversalName: LPSTR,
    pub lpConnectionName: LPSTR,
    pub lpRemainingPath: LPSTR,
}
pub type REMOTE_NAME_INFOA = _REMOTE_NAME_INFOA;
pub type LPREMOTE_NAME_INFOA = *mut _REMOTE_NAME_INFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REMOTE_NAME_INFOW {
    pub lpUniversalName: LPWSTR,
    pub lpConnectionName: LPWSTR,
    pub lpRemainingPath: LPWSTR,
}
pub type REMOTE_NAME_INFOW = _REMOTE_NAME_INFOW;
pub type LPREMOTE_NAME_INFOW = *mut _REMOTE_NAME_INFOW;
pub type REMOTE_NAME_INFO = REMOTE_NAME_INFOA;
pub type LPREMOTE_NAME_INFO = LPREMOTE_NAME_INFOA;
extern "C" {
    pub fn WNetGetUniversalNameA(
        lpLocalPath: LPCSTR,
        dwInfoLevel: DWORD,
        lpBuffer: LPVOID,
        lpBufferSize: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetGetUniversalNameW(
        lpLocalPath: LPCWSTR,
        dwInfoLevel: DWORD,
        lpBuffer: LPVOID,
        lpBufferSize: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetGetUserA(lpName: LPCSTR, lpUserName: LPSTR, lpnLength: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn WNetGetUserW(lpName: LPCWSTR, lpUserName: LPWSTR, lpnLength: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn WNetGetProviderNameA(
        dwNetType: DWORD,
        lpProviderName: LPSTR,
        lpBufferSize: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetGetProviderNameW(
        dwNetType: DWORD,
        lpProviderName: LPWSTR,
        lpBufferSize: LPDWORD,
    ) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NETINFOSTRUCT {
    pub cbStructure: DWORD,
    pub dwProviderVersion: DWORD,
    pub dwStatus: DWORD,
    pub dwCharacteristics: DWORD,
    pub dwHandle: ULONG_PTR,
    pub wNetType: WORD,
    pub dwPrinters: DWORD,
    pub dwDrives: DWORD,
}
pub type NETINFOSTRUCT = _NETINFOSTRUCT;
pub type LPNETINFOSTRUCT = *mut _NETINFOSTRUCT;
extern "C" {
    pub fn WNetGetNetworkInformationA(
        lpProvider: LPCSTR,
        lpNetInfoStruct: LPNETINFOSTRUCT,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetGetNetworkInformationW(
        lpProvider: LPCWSTR,
        lpNetInfoStruct: LPNETINFOSTRUCT,
    ) -> DWORD;
}
pub type PFNGETPROFILEPATHA = ::std::option::Option<
    unsafe extern "C" fn(pszUsername: LPCSTR, pszBuffer: LPSTR, cbBuffer: UINT) -> UINT,
>;
pub type PFNGETPROFILEPATHW = ::std::option::Option<
    unsafe extern "C" fn(pszUsername: LPCWSTR, pszBuffer: LPWSTR, cbBuffer: UINT) -> UINT,
>;
pub type PFNRECONCILEPROFILEA = ::std::option::Option<
    unsafe extern "C" fn(pszCentralFile: LPCSTR, pszLocalFile: LPCSTR, dwFlags: DWORD) -> UINT,
>;
pub type PFNRECONCILEPROFILEW = ::std::option::Option<
    unsafe extern "C" fn(pszCentralFile: LPCWSTR, pszLocalFile: LPCWSTR, dwFlags: DWORD) -> UINT,
>;
pub type PFNPROCESSPOLICIESA = ::std::option::Option<
    unsafe extern "C" fn(
        hwnd: HWND,
        pszPath: LPCSTR,
        pszUsername: LPCSTR,
        pszComputerName: LPCSTR,
        dwFlags: DWORD,
    ) -> WINBOOL,
>;
pub type PFNPROCESSPOLICIESW = ::std::option::Option<
    unsafe extern "C" fn(
        hwnd: HWND,
        pszPath: LPCWSTR,
        pszUsername: LPCWSTR,
        pszComputerName: LPCWSTR,
        dwFlags: DWORD,
    ) -> WINBOOL,
>;
extern "C" {
    pub fn WNetGetLastErrorA(
        lpError: LPDWORD,
        lpErrorBuf: LPSTR,
        nErrorBufSize: DWORD,
        lpNameBuf: LPSTR,
        nNameBufSize: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn WNetGetLastErrorW(
        lpError: LPDWORD,
        lpErrorBuf: LPWSTR,
        nErrorBufSize: DWORD,
        lpNameBuf: LPWSTR,
        nNameBufSize: DWORD,
    ) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NETCONNECTINFOSTRUCT {
    pub cbStructure: DWORD,
    pub dwFlags: DWORD,
    pub dwSpeed: DWORD,
    pub dwDelay: DWORD,
    pub dwOptDataSize: DWORD,
}
pub type NETCONNECTINFOSTRUCT = _NETCONNECTINFOSTRUCT;
pub type LPNETCONNECTINFOSTRUCT = *mut _NETCONNECTINFOSTRUCT;
extern "C" {
    pub fn MultinetGetConnectionPerformanceA(
        lpNetResource: LPNETRESOURCEA,
        lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT,
    ) -> DWORD;
}
extern "C" {
    pub fn MultinetGetConnectionPerformanceW(
        lpNetResource: LPNETRESOURCEW,
        lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT,
    ) -> DWORD;
}
extern "C" {
    pub fn uaw_CharUpperW(String: LPUWSTR) -> LPUWSTR;
}
extern "C" {
    pub fn uaw_lstrcmpW(String1: PCUWSTR, String2: PCUWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn uaw_lstrcmpiW(String1: PCUWSTR, String2: PCUWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn uaw_lstrlenW(String: LPCUWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn uaw_wcschr(String: PCUWSTR, Character: WCHAR) -> PUWSTR;
}
extern "C" {
    pub fn uaw_wcscpy(Destination: PUWSTR, Source: PCUWSTR) -> PUWSTR;
}
extern "C" {
    pub fn uaw_wcsicmp(String1: PCUWSTR, String2: PCUWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn uaw_wcslen(String: PCUWSTR) -> usize;
}
extern "C" {
    pub fn uaw_wcsrchr(String: PCUWSTR, Character: WCHAR) -> PUWSTR;
}
extern "C" {
    pub fn ua_CharUpperW(String: LPUWSTR) -> LPUWSTR;
}
extern "C" {
    pub fn ua_lstrcmpW(String1: LPCUWSTR, String2: LPCUWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ua_lstrcmpiW(String1: LPCUWSTR, String2: LPCUWSTR) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ua_lstrlenW(String: LPCUWSTR) -> ::std::os::raw::c_int;
}
pub type PUWSTR_C = *mut WCHAR;
extern "C" {
    pub fn ua_wcschr(String: PCUWSTR, Character: WCHAR) -> PUWSTR_C;
}
extern "C" {
    pub fn ua_wcsrchr(String: PCUWSTR, Character: WCHAR) -> PUWSTR_C;
}
extern "C" {
    pub fn ua_wcscpy(Destination: PUWSTR, Source: PCUWSTR) -> PUWSTR;
}
extern "C" {
    pub fn ua_wcslen(String: PCUWSTR) -> usize;
}
extern "C" {
    pub fn ua_wcsicmp(String1: LPCUWSTR, String2: LPCUWSTR) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_DESCRIPTIONA {
    pub lpDescription: LPSTR,
}
pub type SERVICE_DESCRIPTIONA = _SERVICE_DESCRIPTIONA;
pub type LPSERVICE_DESCRIPTIONA = *mut _SERVICE_DESCRIPTIONA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_DESCRIPTIONW {
    pub lpDescription: LPWSTR,
}
pub type SERVICE_DESCRIPTIONW = _SERVICE_DESCRIPTIONW;
pub type LPSERVICE_DESCRIPTIONW = *mut _SERVICE_DESCRIPTIONW;
pub type SERVICE_DESCRIPTION = SERVICE_DESCRIPTIONA;
pub type LPSERVICE_DESCRIPTION = LPSERVICE_DESCRIPTIONA;
pub const _SC_ACTION_TYPE_SC_ACTION_NONE: _SC_ACTION_TYPE = 0;
pub const _SC_ACTION_TYPE_SC_ACTION_RESTART: _SC_ACTION_TYPE = 1;
pub const _SC_ACTION_TYPE_SC_ACTION_REBOOT: _SC_ACTION_TYPE = 2;
pub const _SC_ACTION_TYPE_SC_ACTION_RUN_COMMAND: _SC_ACTION_TYPE = 3;
pub type _SC_ACTION_TYPE = u32;
pub use self::_SC_ACTION_TYPE as SC_ACTION_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SC_ACTION {
    pub Type: SC_ACTION_TYPE,
    pub Delay: DWORD,
}
pub type SC_ACTION = _SC_ACTION;
pub type LPSC_ACTION = *mut _SC_ACTION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_FAILURE_ACTIONSA {
    pub dwResetPeriod: DWORD,
    pub lpRebootMsg: LPSTR,
    pub lpCommand: LPSTR,
    pub cActions: DWORD,
    pub lpsaActions: *mut SC_ACTION,
}
pub type SERVICE_FAILURE_ACTIONSA = _SERVICE_FAILURE_ACTIONSA;
pub type LPSERVICE_FAILURE_ACTIONSA = *mut _SERVICE_FAILURE_ACTIONSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_FAILURE_ACTIONSW {
    pub dwResetPeriod: DWORD,
    pub lpRebootMsg: LPWSTR,
    pub lpCommand: LPWSTR,
    pub cActions: DWORD,
    pub lpsaActions: *mut SC_ACTION,
}
pub type SERVICE_FAILURE_ACTIONSW = _SERVICE_FAILURE_ACTIONSW;
pub type LPSERVICE_FAILURE_ACTIONSW = *mut _SERVICE_FAILURE_ACTIONSW;
pub type SERVICE_FAILURE_ACTIONS = SERVICE_FAILURE_ACTIONSA;
pub type LPSERVICE_FAILURE_ACTIONS = LPSERVICE_FAILURE_ACTIONSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SC_HANDLE__ {
    pub unused: ::std::os::raw::c_int,
}
pub type SC_HANDLE = *mut SC_HANDLE__;
pub type LPSC_HANDLE = *mut SC_HANDLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SERVICE_STATUS_HANDLE__ {
    pub unused: ::std::os::raw::c_int,
}
pub type SERVICE_STATUS_HANDLE = *mut SERVICE_STATUS_HANDLE__;
pub const _SC_STATUS_TYPE_SC_STATUS_PROCESS_INFO: _SC_STATUS_TYPE = 0;
pub type _SC_STATUS_TYPE = u32;
pub use self::_SC_STATUS_TYPE as SC_STATUS_TYPE;
pub const _SC_ENUM_TYPE_SC_ENUM_PROCESS_INFO: _SC_ENUM_TYPE = 0;
pub type _SC_ENUM_TYPE = u32;
pub use self::_SC_ENUM_TYPE as SC_ENUM_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_STATUS {
    pub dwServiceType: DWORD,
    pub dwCurrentState: DWORD,
    pub dwControlsAccepted: DWORD,
    pub dwWin32ExitCode: DWORD,
    pub dwServiceSpecificExitCode: DWORD,
    pub dwCheckPoint: DWORD,
    pub dwWaitHint: DWORD,
}
pub type SERVICE_STATUS = _SERVICE_STATUS;
pub type LPSERVICE_STATUS = *mut _SERVICE_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_STATUS_PROCESS {
    pub dwServiceType: DWORD,
    pub dwCurrentState: DWORD,
    pub dwControlsAccepted: DWORD,
    pub dwWin32ExitCode: DWORD,
    pub dwServiceSpecificExitCode: DWORD,
    pub dwCheckPoint: DWORD,
    pub dwWaitHint: DWORD,
    pub dwProcessId: DWORD,
    pub dwServiceFlags: DWORD,
}
pub type SERVICE_STATUS_PROCESS = _SERVICE_STATUS_PROCESS;
pub type LPSERVICE_STATUS_PROCESS = *mut _SERVICE_STATUS_PROCESS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENUM_SERVICE_STATUSA {
    pub lpServiceName: LPSTR,
    pub lpDisplayName: LPSTR,
    pub ServiceStatus: SERVICE_STATUS,
}
pub type ENUM_SERVICE_STATUSA = _ENUM_SERVICE_STATUSA;
pub type LPENUM_SERVICE_STATUSA = *mut _ENUM_SERVICE_STATUSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENUM_SERVICE_STATUSW {
    pub lpServiceName: LPWSTR,
    pub lpDisplayName: LPWSTR,
    pub ServiceStatus: SERVICE_STATUS,
}
pub type ENUM_SERVICE_STATUSW = _ENUM_SERVICE_STATUSW;
pub type LPENUM_SERVICE_STATUSW = *mut _ENUM_SERVICE_STATUSW;
pub type ENUM_SERVICE_STATUS = ENUM_SERVICE_STATUSA;
pub type LPENUM_SERVICE_STATUS = LPENUM_SERVICE_STATUSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENUM_SERVICE_STATUS_PROCESSA {
    pub lpServiceName: LPSTR,
    pub lpDisplayName: LPSTR,
    pub ServiceStatusProcess: SERVICE_STATUS_PROCESS,
}
pub type ENUM_SERVICE_STATUS_PROCESSA = _ENUM_SERVICE_STATUS_PROCESSA;
pub type LPENUM_SERVICE_STATUS_PROCESSA = *mut _ENUM_SERVICE_STATUS_PROCESSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENUM_SERVICE_STATUS_PROCESSW {
    pub lpServiceName: LPWSTR,
    pub lpDisplayName: LPWSTR,
    pub ServiceStatusProcess: SERVICE_STATUS_PROCESS,
}
pub type ENUM_SERVICE_STATUS_PROCESSW = _ENUM_SERVICE_STATUS_PROCESSW;
pub type LPENUM_SERVICE_STATUS_PROCESSW = *mut _ENUM_SERVICE_STATUS_PROCESSW;
pub type ENUM_SERVICE_STATUS_PROCESS = ENUM_SERVICE_STATUS_PROCESSA;
pub type LPENUM_SERVICE_STATUS_PROCESS = LPENUM_SERVICE_STATUS_PROCESSA;
pub type SC_LOCK = LPVOID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _QUERY_SERVICE_LOCK_STATUSA {
    pub fIsLocked: DWORD,
    pub lpLockOwner: LPSTR,
    pub dwLockDuration: DWORD,
}
pub type QUERY_SERVICE_LOCK_STATUSA = _QUERY_SERVICE_LOCK_STATUSA;
pub type LPQUERY_SERVICE_LOCK_STATUSA = *mut _QUERY_SERVICE_LOCK_STATUSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _QUERY_SERVICE_LOCK_STATUSW {
    pub fIsLocked: DWORD,
    pub lpLockOwner: LPWSTR,
    pub dwLockDuration: DWORD,
}
pub type QUERY_SERVICE_LOCK_STATUSW = _QUERY_SERVICE_LOCK_STATUSW;
pub type LPQUERY_SERVICE_LOCK_STATUSW = *mut _QUERY_SERVICE_LOCK_STATUSW;
pub type QUERY_SERVICE_LOCK_STATUS = QUERY_SERVICE_LOCK_STATUSA;
pub type LPQUERY_SERVICE_LOCK_STATUS = LPQUERY_SERVICE_LOCK_STATUSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _QUERY_SERVICE_CONFIGA {
    pub dwServiceType: DWORD,
    pub dwStartType: DWORD,
    pub dwErrorControl: DWORD,
    pub lpBinaryPathName: LPSTR,
    pub lpLoadOrderGroup: LPSTR,
    pub dwTagId: DWORD,
    pub lpDependencies: LPSTR,
    pub lpServiceStartName: LPSTR,
    pub lpDisplayName: LPSTR,
}
pub type QUERY_SERVICE_CONFIGA = _QUERY_SERVICE_CONFIGA;
pub type LPQUERY_SERVICE_CONFIGA = *mut _QUERY_SERVICE_CONFIGA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _QUERY_SERVICE_CONFIGW {
    pub dwServiceType: DWORD,
    pub dwStartType: DWORD,
    pub dwErrorControl: DWORD,
    pub lpBinaryPathName: LPWSTR,
    pub lpLoadOrderGroup: LPWSTR,
    pub dwTagId: DWORD,
    pub lpDependencies: LPWSTR,
    pub lpServiceStartName: LPWSTR,
    pub lpDisplayName: LPWSTR,
}
pub type QUERY_SERVICE_CONFIGW = _QUERY_SERVICE_CONFIGW;
pub type LPQUERY_SERVICE_CONFIGW = *mut _QUERY_SERVICE_CONFIGW;
pub type QUERY_SERVICE_CONFIG = QUERY_SERVICE_CONFIGA;
pub type LPQUERY_SERVICE_CONFIG = LPQUERY_SERVICE_CONFIGA;
pub type LPSERVICE_MAIN_FUNCTIONW = ::std::option::Option<
    unsafe extern "C" fn(dwNumServicesArgs: DWORD, lpServiceArgVectors: *mut LPWSTR),
>;
pub type LPSERVICE_MAIN_FUNCTIONA = ::std::option::Option<
    unsafe extern "C" fn(dwNumServicesArgs: DWORD, lpServiceArgVectors: *mut LPSTR),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_TABLE_ENTRYA {
    pub lpServiceName: LPSTR,
    pub lpServiceProc: LPSERVICE_MAIN_FUNCTIONA,
}
pub type SERVICE_TABLE_ENTRYA = _SERVICE_TABLE_ENTRYA;
pub type LPSERVICE_TABLE_ENTRYA = *mut _SERVICE_TABLE_ENTRYA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_TABLE_ENTRYW {
    pub lpServiceName: LPWSTR,
    pub lpServiceProc: LPSERVICE_MAIN_FUNCTIONW,
}
pub type SERVICE_TABLE_ENTRYW = _SERVICE_TABLE_ENTRYW;
pub type LPSERVICE_TABLE_ENTRYW = *mut _SERVICE_TABLE_ENTRYW;
pub type SERVICE_TABLE_ENTRY = SERVICE_TABLE_ENTRYA;
pub type LPSERVICE_TABLE_ENTRY = LPSERVICE_TABLE_ENTRYA;
pub type LPHANDLER_FUNCTION = ::std::option::Option<unsafe extern "C" fn(dwControl: DWORD)>;
pub type LPHANDLER_FUNCTION_EX = ::std::option::Option<
    unsafe extern "C" fn(
        dwControl: DWORD,
        dwEventType: DWORD,
        lpEventData: LPVOID,
        lpContext: LPVOID,
    ) -> DWORD,
>;
extern "C" {
    pub fn ChangeServiceConfigA(
        hService: SC_HANDLE,
        dwServiceType: DWORD,
        dwStartType: DWORD,
        dwErrorControl: DWORD,
        lpBinaryPathName: LPCSTR,
        lpLoadOrderGroup: LPCSTR,
        lpdwTagId: LPDWORD,
        lpDependencies: LPCSTR,
        lpServiceStartName: LPCSTR,
        lpPassword: LPCSTR,
        lpDisplayName: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ChangeServiceConfigW(
        hService: SC_HANDLE,
        dwServiceType: DWORD,
        dwStartType: DWORD,
        dwErrorControl: DWORD,
        lpBinaryPathName: LPCWSTR,
        lpLoadOrderGroup: LPCWSTR,
        lpdwTagId: LPDWORD,
        lpDependencies: LPCWSTR,
        lpServiceStartName: LPCWSTR,
        lpPassword: LPCWSTR,
        lpDisplayName: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ChangeServiceConfig2A(
        hService: SC_HANDLE,
        dwInfoLevel: DWORD,
        lpInfo: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ChangeServiceConfig2W(
        hService: SC_HANDLE,
        dwInfoLevel: DWORD,
        lpInfo: LPVOID,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CloseServiceHandle(hSCObject: SC_HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn ControlService(
        hService: SC_HANDLE,
        dwControl: DWORD,
        lpServiceStatus: LPSERVICE_STATUS,
    ) -> WINBOOL;
}
extern "C" {
    pub fn CreateServiceA(
        hSCManager: SC_HANDLE,
        lpServiceName: LPCSTR,
        lpDisplayName: LPCSTR,
        dwDesiredAccess: DWORD,
        dwServiceType: DWORD,
        dwStartType: DWORD,
        dwErrorControl: DWORD,
        lpBinaryPathName: LPCSTR,
        lpLoadOrderGroup: LPCSTR,
        lpdwTagId: LPDWORD,
        lpDependencies: LPCSTR,
        lpServiceStartName: LPCSTR,
        lpPassword: LPCSTR,
    ) -> SC_HANDLE;
}
extern "C" {
    pub fn CreateServiceW(
        hSCManager: SC_HANDLE,
        lpServiceName: LPCWSTR,
        lpDisplayName: LPCWSTR,
        dwDesiredAccess: DWORD,
        dwServiceType: DWORD,
        dwStartType: DWORD,
        dwErrorControl: DWORD,
        lpBinaryPathName: LPCWSTR,
        lpLoadOrderGroup: LPCWSTR,
        lpdwTagId: LPDWORD,
        lpDependencies: LPCWSTR,
        lpServiceStartName: LPCWSTR,
        lpPassword: LPCWSTR,
    ) -> SC_HANDLE;
}
extern "C" {
    pub fn DeleteService(hService: SC_HANDLE) -> WINBOOL;
}
extern "C" {
    pub fn EnumDependentServicesA(
        hService: SC_HANDLE,
        dwServiceState: DWORD,
        lpServices: LPENUM_SERVICE_STATUSA,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumDependentServicesW(
        hService: SC_HANDLE,
        dwServiceState: DWORD,
        lpServices: LPENUM_SERVICE_STATUSW,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumServicesStatusA(
        hSCManager: SC_HANDLE,
        dwServiceType: DWORD,
        dwServiceState: DWORD,
        lpServices: LPENUM_SERVICE_STATUSA,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
        lpResumeHandle: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumServicesStatusW(
        hSCManager: SC_HANDLE,
        dwServiceType: DWORD,
        dwServiceState: DWORD,
        lpServices: LPENUM_SERVICE_STATUSW,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
        lpResumeHandle: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumServicesStatusExA(
        hSCManager: SC_HANDLE,
        InfoLevel: SC_ENUM_TYPE,
        dwServiceType: DWORD,
        dwServiceState: DWORD,
        lpServices: LPBYTE,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
        lpResumeHandle: LPDWORD,
        pszGroupName: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn EnumServicesStatusExW(
        hSCManager: SC_HANDLE,
        InfoLevel: SC_ENUM_TYPE,
        dwServiceType: DWORD,
        dwServiceState: DWORD,
        lpServices: LPBYTE,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
        lpResumeHandle: LPDWORD,
        pszGroupName: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetServiceKeyNameA(
        hSCManager: SC_HANDLE,
        lpDisplayName: LPCSTR,
        lpServiceName: LPSTR,
        lpcchBuffer: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetServiceKeyNameW(
        hSCManager: SC_HANDLE,
        lpDisplayName: LPCWSTR,
        lpServiceName: LPWSTR,
        lpcchBuffer: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetServiceDisplayNameA(
        hSCManager: SC_HANDLE,
        lpServiceName: LPCSTR,
        lpDisplayName: LPSTR,
        lpcchBuffer: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn GetServiceDisplayNameW(
        hSCManager: SC_HANDLE,
        lpServiceName: LPCWSTR,
        lpDisplayName: LPWSTR,
        lpcchBuffer: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn LockServiceDatabase(hSCManager: SC_HANDLE) -> SC_LOCK;
}
extern "C" {
    pub fn NotifyBootConfigStatus(BootAcceptable: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn OpenSCManagerA(
        lpMachineName: LPCSTR,
        lpDatabaseName: LPCSTR,
        dwDesiredAccess: DWORD,
    ) -> SC_HANDLE;
}
extern "C" {
    pub fn OpenSCManagerW(
        lpMachineName: LPCWSTR,
        lpDatabaseName: LPCWSTR,
        dwDesiredAccess: DWORD,
    ) -> SC_HANDLE;
}
extern "C" {
    pub fn OpenServiceA(
        hSCManager: SC_HANDLE,
        lpServiceName: LPCSTR,
        dwDesiredAccess: DWORD,
    ) -> SC_HANDLE;
}
extern "C" {
    pub fn OpenServiceW(
        hSCManager: SC_HANDLE,
        lpServiceName: LPCWSTR,
        dwDesiredAccess: DWORD,
    ) -> SC_HANDLE;
}
extern "C" {
    pub fn QueryServiceConfigA(
        hService: SC_HANDLE,
        lpServiceConfig: LPQUERY_SERVICE_CONFIGA,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn QueryServiceConfigW(
        hService: SC_HANDLE,
        lpServiceConfig: LPQUERY_SERVICE_CONFIGW,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn QueryServiceConfig2A(
        hService: SC_HANDLE,
        dwInfoLevel: DWORD,
        lpBuffer: LPBYTE,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn QueryServiceConfig2W(
        hService: SC_HANDLE,
        dwInfoLevel: DWORD,
        lpBuffer: LPBYTE,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn QueryServiceLockStatusA(
        hSCManager: SC_HANDLE,
        lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSA,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn QueryServiceLockStatusW(
        hSCManager: SC_HANDLE,
        lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSW,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn QueryServiceObjectSecurity(
        hService: SC_HANDLE,
        dwSecurityInformation: SECURITY_INFORMATION,
        lpSecurityDescriptor: PSECURITY_DESCRIPTOR,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn QueryServiceStatus(hService: SC_HANDLE, lpServiceStatus: LPSERVICE_STATUS) -> WINBOOL;
}
extern "C" {
    pub fn QueryServiceStatusEx(
        hService: SC_HANDLE,
        InfoLevel: SC_STATUS_TYPE,
        lpBuffer: LPBYTE,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn RegisterServiceCtrlHandlerA(
        lpServiceName: LPCSTR,
        lpHandlerProc: LPHANDLER_FUNCTION,
    ) -> SERVICE_STATUS_HANDLE;
}
extern "C" {
    pub fn RegisterServiceCtrlHandlerW(
        lpServiceName: LPCWSTR,
        lpHandlerProc: LPHANDLER_FUNCTION,
    ) -> SERVICE_STATUS_HANDLE;
}
extern "C" {
    pub fn RegisterServiceCtrlHandlerExA(
        lpServiceName: LPCSTR,
        lpHandlerProc: LPHANDLER_FUNCTION_EX,
        lpContext: LPVOID,
    ) -> SERVICE_STATUS_HANDLE;
}
extern "C" {
    pub fn RegisterServiceCtrlHandlerExW(
        lpServiceName: LPCWSTR,
        lpHandlerProc: LPHANDLER_FUNCTION_EX,
        lpContext: LPVOID,
    ) -> SERVICE_STATUS_HANDLE;
}
extern "C" {
    pub fn SetServiceObjectSecurity(
        hService: SC_HANDLE,
        dwSecurityInformation: SECURITY_INFORMATION,
        lpSecurityDescriptor: PSECURITY_DESCRIPTOR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SetServiceStatus(
        hServiceStatus: SERVICE_STATUS_HANDLE,
        lpServiceStatus: LPSERVICE_STATUS,
    ) -> WINBOOL;
}
extern "C" {
    pub fn StartServiceCtrlDispatcherA(lpServiceStartTable: *const SERVICE_TABLE_ENTRYA)
        -> WINBOOL;
}
extern "C" {
    pub fn StartServiceCtrlDispatcherW(lpServiceStartTable: *const SERVICE_TABLE_ENTRYW)
        -> WINBOOL;
}
extern "C" {
    pub fn StartServiceA(
        hService: SC_HANDLE,
        dwNumServiceArgs: DWORD,
        lpServiceArgVectors: *mut LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn StartServiceW(
        hService: SC_HANDLE,
        dwNumServiceArgs: DWORD,
        lpServiceArgVectors: *mut LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn UnlockServiceDatabase(ScLock: SC_LOCK) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MODEMDEVCAPS {
    pub dwActualSize: DWORD,
    pub dwRequiredSize: DWORD,
    pub dwDevSpecificOffset: DWORD,
    pub dwDevSpecificSize: DWORD,
    pub dwModemProviderVersion: DWORD,
    pub dwModemManufacturerOffset: DWORD,
    pub dwModemManufacturerSize: DWORD,
    pub dwModemModelOffset: DWORD,
    pub dwModemModelSize: DWORD,
    pub dwModemVersionOffset: DWORD,
    pub dwModemVersionSize: DWORD,
    pub dwDialOptions: DWORD,
    pub dwCallSetupFailTimer: DWORD,
    pub dwInactivityTimeout: DWORD,
    pub dwSpeakerVolume: DWORD,
    pub dwSpeakerMode: DWORD,
    pub dwModemOptions: DWORD,
    pub dwMaxDTERate: DWORD,
    pub dwMaxDCERate: DWORD,
    pub abVariablePortion: [BYTE; 1usize],
}
pub type MODEMDEVCAPS = _MODEMDEVCAPS;
pub type PMODEMDEVCAPS = *mut _MODEMDEVCAPS;
pub type LPMODEMDEVCAPS = *mut _MODEMDEVCAPS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MODEMSETTINGS {
    pub dwActualSize: DWORD,
    pub dwRequiredSize: DWORD,
    pub dwDevSpecificOffset: DWORD,
    pub dwDevSpecificSize: DWORD,
    pub dwCallSetupFailTimer: DWORD,
    pub dwInactivityTimeout: DWORD,
    pub dwSpeakerVolume: DWORD,
    pub dwSpeakerMode: DWORD,
    pub dwPreferredModemOptions: DWORD,
    pub dwNegotiatedModemOptions: DWORD,
    pub dwNegotiatedDCERate: DWORD,
    pub abVariablePortion: [BYTE; 1usize],
}
pub type MODEMSETTINGS = _MODEMSETTINGS;
pub type PMODEMSETTINGS = *mut _MODEMSETTINGS;
pub type LPMODEMSETTINGS = *mut _MODEMSETTINGS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HIMC__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HIMC = *mut HIMC__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HIMCC__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HIMCC = *mut HIMCC__;
pub type LPHKL = *mut HKL;
pub type LPUINT = *mut UINT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCOMPOSITIONFORM {
    pub dwStyle: DWORD,
    pub ptCurrentPos: POINT,
    pub rcArea: RECT,
}
pub type COMPOSITIONFORM = tagCOMPOSITIONFORM;
pub type PCOMPOSITIONFORM = *mut tagCOMPOSITIONFORM;
pub type NPCOMPOSITIONFORM = *mut tagCOMPOSITIONFORM;
pub type LPCOMPOSITIONFORM = *mut tagCOMPOSITIONFORM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCANDIDATEFORM {
    pub dwIndex: DWORD,
    pub dwStyle: DWORD,
    pub ptCurrentPos: POINT,
    pub rcArea: RECT,
}
pub type CANDIDATEFORM = tagCANDIDATEFORM;
pub type PCANDIDATEFORM = *mut tagCANDIDATEFORM;
pub type NPCANDIDATEFORM = *mut tagCANDIDATEFORM;
pub type LPCANDIDATEFORM = *mut tagCANDIDATEFORM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCANDIDATELIST {
    pub dwSize: DWORD,
    pub dwStyle: DWORD,
    pub dwCount: DWORD,
    pub dwSelection: DWORD,
    pub dwPageStart: DWORD,
    pub dwPageSize: DWORD,
    pub dwOffset: [DWORD; 1usize],
}
pub type CANDIDATELIST = tagCANDIDATELIST;
pub type PCANDIDATELIST = *mut tagCANDIDATELIST;
pub type NPCANDIDATELIST = *mut tagCANDIDATELIST;
pub type LPCANDIDATELIST = *mut tagCANDIDATELIST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagREGISTERWORDA {
    pub lpReading: LPSTR,
    pub lpWord: LPSTR,
}
pub type REGISTERWORDA = tagREGISTERWORDA;
pub type PREGISTERWORDA = *mut tagREGISTERWORDA;
pub type NPREGISTERWORDA = *mut tagREGISTERWORDA;
pub type LPREGISTERWORDA = *mut tagREGISTERWORDA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagREGISTERWORDW {
    pub lpReading: LPWSTR,
    pub lpWord: LPWSTR,
}
pub type REGISTERWORDW = tagREGISTERWORDW;
pub type PREGISTERWORDW = *mut tagREGISTERWORDW;
pub type NPREGISTERWORDW = *mut tagREGISTERWORDW;
pub type LPREGISTERWORDW = *mut tagREGISTERWORDW;
pub type REGISTERWORD = REGISTERWORDA;
pub type PREGISTERWORD = PREGISTERWORDA;
pub type NPREGISTERWORD = NPREGISTERWORDA;
pub type LPREGISTERWORD = LPREGISTERWORDA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRECONVERTSTRING {
    pub dwSize: DWORD,
    pub dwVersion: DWORD,
    pub dwStrLen: DWORD,
    pub dwStrOffset: DWORD,
    pub dwCompStrLen: DWORD,
    pub dwCompStrOffset: DWORD,
    pub dwTargetStrLen: DWORD,
    pub dwTargetStrOffset: DWORD,
}
pub type RECONVERTSTRING = tagRECONVERTSTRING;
pub type PRECONVERTSTRING = *mut tagRECONVERTSTRING;
pub type NPRECONVERTSTRING = *mut tagRECONVERTSTRING;
pub type LPRECONVERTSTRING = *mut tagRECONVERTSTRING;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTYLEBUFA {
    pub dwStyle: DWORD,
    pub szDescription: [CHAR; 32usize],
}
pub type STYLEBUFA = tagSTYLEBUFA;
pub type PSTYLEBUFA = *mut tagSTYLEBUFA;
pub type NPSTYLEBUFA = *mut tagSTYLEBUFA;
pub type LPSTYLEBUFA = *mut tagSTYLEBUFA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTYLEBUFW {
    pub dwStyle: DWORD,
    pub szDescription: [WCHAR; 32usize],
}
pub type STYLEBUFW = tagSTYLEBUFW;
pub type PSTYLEBUFW = *mut tagSTYLEBUFW;
pub type NPSTYLEBUFW = *mut tagSTYLEBUFW;
pub type LPSTYLEBUFW = *mut tagSTYLEBUFW;
pub type STYLEBUF = STYLEBUFA;
pub type PSTYLEBUF = PSTYLEBUFA;
pub type NPSTYLEBUF = NPSTYLEBUFA;
pub type LPSTYLEBUF = LPSTYLEBUFA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagIMEMENUITEMINFOA {
    pub cbSize: UINT,
    pub fType: UINT,
    pub fState: UINT,
    pub wID: UINT,
    pub hbmpChecked: HBITMAP,
    pub hbmpUnchecked: HBITMAP,
    pub dwItemData: DWORD,
    pub szString: [CHAR; 80usize],
    pub hbmpItem: HBITMAP,
}
pub type IMEMENUITEMINFOA = tagIMEMENUITEMINFOA;
pub type PIMEMENUITEMINFOA = *mut tagIMEMENUITEMINFOA;
pub type NPIMEMENUITEMINFOA = *mut tagIMEMENUITEMINFOA;
pub type LPIMEMENUITEMINFOA = *mut tagIMEMENUITEMINFOA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagIMEMENUITEMINFOW {
    pub cbSize: UINT,
    pub fType: UINT,
    pub fState: UINT,
    pub wID: UINT,
    pub hbmpChecked: HBITMAP,
    pub hbmpUnchecked: HBITMAP,
    pub dwItemData: DWORD,
    pub szString: [WCHAR; 80usize],
    pub hbmpItem: HBITMAP,
}
pub type IMEMENUITEMINFOW = tagIMEMENUITEMINFOW;
pub type PIMEMENUITEMINFOW = *mut tagIMEMENUITEMINFOW;
pub type NPIMEMENUITEMINFOW = *mut tagIMEMENUITEMINFOW;
pub type LPIMEMENUITEMINFOW = *mut tagIMEMENUITEMINFOW;
pub type IMEMENUITEMINFO = IMEMENUITEMINFOA;
pub type PIMEMENUITEMINFO = PIMEMENUITEMINFOA;
pub type NPIMEMENUITEMINFO = NPIMEMENUITEMINFOA;
pub type LPIMEMENUITEMINFO = LPIMEMENUITEMINFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagIMECHARPOSITION {
    pub dwSize: DWORD,
    pub dwCharPos: DWORD,
    pub pt: POINT,
    pub cLineHeight: UINT,
    pub rcDocument: RECT,
}
pub type IMECHARPOSITION = tagIMECHARPOSITION;
pub type PIMECHARPOSITION = *mut tagIMECHARPOSITION;
pub type NPIMECHARPOSITION = *mut tagIMECHARPOSITION;
pub type LPIMECHARPOSITION = *mut tagIMECHARPOSITION;
pub type IMCENUMPROC =
    ::std::option::Option<unsafe extern "C" fn(arg1: HIMC, arg2: LPARAM) -> WINBOOL>;
extern "C" {
    pub fn ImmInstallIMEA(lpszIMEFileName: LPCSTR, lpszLayoutText: LPCSTR) -> HKL;
}
extern "C" {
    pub fn ImmInstallIMEW(lpszIMEFileName: LPCWSTR, lpszLayoutText: LPCWSTR) -> HKL;
}
extern "C" {
    pub fn ImmGetDefaultIMEWnd(arg1: HWND) -> HWND;
}
extern "C" {
    pub fn ImmGetDescriptionA(arg1: HKL, arg2: LPSTR, uBufLen: UINT) -> UINT;
}
extern "C" {
    pub fn ImmGetDescriptionW(arg1: HKL, arg2: LPWSTR, uBufLen: UINT) -> UINT;
}
extern "C" {
    pub fn ImmGetIMEFileNameA(arg1: HKL, arg2: LPSTR, uBufLen: UINT) -> UINT;
}
extern "C" {
    pub fn ImmGetIMEFileNameW(arg1: HKL, arg2: LPWSTR, uBufLen: UINT) -> UINT;
}
extern "C" {
    pub fn ImmGetProperty(arg1: HKL, arg2: DWORD) -> DWORD;
}
extern "C" {
    pub fn ImmIsIME(arg1: HKL) -> WINBOOL;
}
extern "C" {
    pub fn ImmSimulateHotKey(arg1: HWND, arg2: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn ImmCreateContext() -> HIMC;
}
extern "C" {
    pub fn ImmDestroyContext(arg1: HIMC) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetContext(arg1: HWND) -> HIMC;
}
extern "C" {
    pub fn ImmReleaseContext(arg1: HWND, arg2: HIMC) -> WINBOOL;
}
extern "C" {
    pub fn ImmAssociateContext(arg1: HWND, arg2: HIMC) -> HIMC;
}
extern "C" {
    pub fn ImmAssociateContextEx(arg1: HWND, arg2: HIMC, arg3: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetCompositionStringA(arg1: HIMC, arg2: DWORD, arg3: LPVOID, arg4: DWORD) -> LONG;
}
extern "C" {
    pub fn ImmGetCompositionStringW(arg1: HIMC, arg2: DWORD, arg3: LPVOID, arg4: DWORD) -> LONG;
}
extern "C" {
    pub fn ImmSetCompositionStringA(
        arg1: HIMC,
        dwIndex: DWORD,
        lpComp: LPVOID,
        arg2: DWORD,
        lpRead: LPVOID,
        arg3: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ImmSetCompositionStringW(
        arg1: HIMC,
        dwIndex: DWORD,
        lpComp: LPVOID,
        arg2: DWORD,
        lpRead: LPVOID,
        arg3: DWORD,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetCandidateListCountA(arg1: HIMC, lpdwListCount: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn ImmGetCandidateListCountW(arg1: HIMC, lpdwListCount: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn ImmGetCandidateListA(
        arg1: HIMC,
        deIndex: DWORD,
        arg2: LPCANDIDATELIST,
        dwBufLen: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmGetCandidateListW(
        arg1: HIMC,
        deIndex: DWORD,
        arg2: LPCANDIDATELIST,
        dwBufLen: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmGetGuideLineA(arg1: HIMC, dwIndex: DWORD, arg2: LPSTR, dwBufLen: DWORD) -> DWORD;
}
extern "C" {
    pub fn ImmGetGuideLineW(arg1: HIMC, dwIndex: DWORD, arg2: LPWSTR, dwBufLen: DWORD) -> DWORD;
}
extern "C" {
    pub fn ImmGetConversionStatus(arg1: HIMC, arg2: LPDWORD, arg3: LPDWORD) -> WINBOOL;
}
extern "C" {
    pub fn ImmSetConversionStatus(arg1: HIMC, arg2: DWORD, arg3: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetOpenStatus(arg1: HIMC) -> WINBOOL;
}
extern "C" {
    pub fn ImmSetOpenStatus(arg1: HIMC, arg2: WINBOOL) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetCompositionFontA(arg1: HIMC, arg2: LPLOGFONTA) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetCompositionFontW(arg1: HIMC, arg2: LPLOGFONTW) -> WINBOOL;
}
extern "C" {
    pub fn ImmSetCompositionFontA(arg1: HIMC, arg2: LPLOGFONTA) -> WINBOOL;
}
extern "C" {
    pub fn ImmSetCompositionFontW(arg1: HIMC, arg2: LPLOGFONTW) -> WINBOOL;
}
pub type REGISTERWORDENUMPROCA = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: LPCSTR,
        arg2: DWORD,
        arg3: LPCSTR,
        arg4: LPVOID,
    ) -> ::std::os::raw::c_int,
>;
pub type REGISTERWORDENUMPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: LPCWSTR,
        arg2: DWORD,
        arg3: LPCWSTR,
        arg4: LPVOID,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn ImmConfigureIMEA(arg1: HKL, arg2: HWND, arg3: DWORD, arg4: LPVOID) -> WINBOOL;
}
extern "C" {
    pub fn ImmConfigureIMEW(arg1: HKL, arg2: HWND, arg3: DWORD, arg4: LPVOID) -> WINBOOL;
}
extern "C" {
    pub fn ImmEscapeA(arg1: HKL, arg2: HIMC, arg3: UINT, arg4: LPVOID) -> LRESULT;
}
extern "C" {
    pub fn ImmEscapeW(arg1: HKL, arg2: HIMC, arg3: UINT, arg4: LPVOID) -> LRESULT;
}
extern "C" {
    pub fn ImmGetConversionListA(
        arg1: HKL,
        arg2: HIMC,
        arg3: LPCSTR,
        arg4: LPCANDIDATELIST,
        dwBufLen: DWORD,
        uFlag: UINT,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmGetConversionListW(
        arg1: HKL,
        arg2: HIMC,
        arg3: LPCWSTR,
        arg4: LPCANDIDATELIST,
        dwBufLen: DWORD,
        uFlag: UINT,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmNotifyIME(arg1: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetStatusWindowPos(arg1: HIMC, arg2: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn ImmSetStatusWindowPos(arg1: HIMC, arg2: LPPOINT) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetCompositionWindow(arg1: HIMC, arg2: LPCOMPOSITIONFORM) -> WINBOOL;
}
extern "C" {
    pub fn ImmSetCompositionWindow(arg1: HIMC, arg2: LPCOMPOSITIONFORM) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetCandidateWindow(arg1: HIMC, arg2: DWORD, arg3: LPCANDIDATEFORM) -> WINBOOL;
}
extern "C" {
    pub fn ImmSetCandidateWindow(arg1: HIMC, arg2: LPCANDIDATEFORM) -> WINBOOL;
}
extern "C" {
    pub fn ImmIsUIMessageA(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn ImmIsUIMessageW(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetVirtualKey(arg1: HWND) -> UINT;
}
extern "C" {
    pub fn ImmRegisterWordA(
        arg1: HKL,
        lpszReading: LPCSTR,
        arg2: DWORD,
        lpszRegister: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ImmRegisterWordW(
        arg1: HKL,
        lpszReading: LPCWSTR,
        arg2: DWORD,
        lpszRegister: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ImmUnregisterWordA(
        arg1: HKL,
        lpszReading: LPCSTR,
        arg2: DWORD,
        lpszUnregister: LPCSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ImmUnregisterWordW(
        arg1: HKL,
        lpszReading: LPCWSTR,
        arg2: DWORD,
        lpszUnregister: LPCWSTR,
    ) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetRegisterWordStyleA(arg1: HKL, nItem: UINT, arg2: LPSTYLEBUFA) -> UINT;
}
extern "C" {
    pub fn ImmGetRegisterWordStyleW(arg1: HKL, nItem: UINT, arg2: LPSTYLEBUFW) -> UINT;
}
extern "C" {
    pub fn ImmEnumRegisterWordA(
        arg1: HKL,
        arg2: REGISTERWORDENUMPROCA,
        lpszReading: LPCSTR,
        arg3: DWORD,
        lpszRegister: LPCSTR,
        arg4: LPVOID,
    ) -> UINT;
}
extern "C" {
    pub fn ImmEnumRegisterWordW(
        arg1: HKL,
        arg2: REGISTERWORDENUMPROCW,
        lpszReading: LPCWSTR,
        arg3: DWORD,
        lpszRegister: LPCWSTR,
        arg4: LPVOID,
    ) -> UINT;
}
extern "C" {
    pub fn ImmDisableIME(arg1: DWORD) -> WINBOOL;
}
extern "C" {
    pub fn ImmEnumInputContext(idThread: DWORD, lpfn: IMCENUMPROC, lParam: LPARAM) -> WINBOOL;
}
extern "C" {
    pub fn ImmGetImeMenuItemsA(
        arg1: HIMC,
        arg2: DWORD,
        arg3: DWORD,
        arg4: LPIMEMENUITEMINFOA,
        arg5: LPIMEMENUITEMINFOA,
        arg6: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmGetImeMenuItemsW(
        arg1: HIMC,
        arg2: DWORD,
        arg3: DWORD,
        arg4: LPIMEMENUITEMINFOW,
        arg5: LPIMEMENUITEMINFOW,
        arg6: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmDisableTextFrameService(idThread: DWORD) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HDROP__ {
    pub unused: ::std::os::raw::c_int,
}
pub type HDROP = *mut HDROP__;
extern "C" {
    pub fn DragQueryFileA(hDrop: HDROP, iFile: UINT, lpszFile: LPSTR, cch: UINT) -> UINT;
}
extern "C" {
    pub fn DragQueryFileW(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT) -> UINT;
}
extern "C" {
    pub fn DragQueryPoint(hDrop: HDROP, ppt: *mut POINT) -> WINBOOL;
}
extern "C" {
    pub fn DragFinish(hDrop: HDROP);
}
extern "C" {
    pub fn DragAcceptFiles(hWnd: HWND, fAccept: WINBOOL);
}
extern "C" {
    pub fn ShellExecuteA(
        hwnd: HWND,
        lpOperation: LPCSTR,
        lpFile: LPCSTR,
        lpParameters: LPCSTR,
        lpDirectory: LPCSTR,
        nShowCmd: INT,
    ) -> HINSTANCE;
}
extern "C" {
    pub fn ShellExecuteW(
        hwnd: HWND,
        lpOperation: LPCWSTR,
        lpFile: LPCWSTR,
        lpParameters: LPCWSTR,
        lpDirectory: LPCWSTR,
        nShowCmd: INT,
    ) -> HINSTANCE;
}
extern "C" {
    pub fn FindExecutableA(lpFile: LPCSTR, lpDirectory: LPCSTR, lpResult: LPSTR) -> HINSTANCE;
}
extern "C" {
    pub fn FindExecutableW(lpFile: LPCWSTR, lpDirectory: LPCWSTR, lpResult: LPWSTR) -> HINSTANCE;
}
extern "C" {
    pub fn CommandLineToArgvW(
        lpCmdLine: LPCWSTR,
        pNumArgs: *mut ::std::os::raw::c_int,
    ) -> *mut LPWSTR;
}
extern "C" {
    pub fn ShellAboutA(hWnd: HWND, szApp: LPCSTR, szOtherStuff: LPCSTR, hIcon: HICON) -> INT;
}
extern "C" {
    pub fn ShellAboutW(hWnd: HWND, szApp: LPCWSTR, szOtherStuff: LPCWSTR, hIcon: HICON) -> INT;
}
extern "C" {
    pub fn DuplicateIcon(hInst: HINSTANCE, hIcon: HICON) -> HICON;
}
extern "C" {
    pub fn ExtractAssociatedIconA(hInst: HINSTANCE, pszIconPath: LPSTR, piIcon: *mut WORD)
        -> HICON;
}
extern "C" {
    pub fn ExtractAssociatedIconW(
        hInst: HINSTANCE,
        pszIconPath: LPWSTR,
        piIcon: *mut WORD,
    ) -> HICON;
}
extern "C" {
    pub fn ExtractAssociatedIconExA(
        hInst: HINSTANCE,
        pszIconPath: LPSTR,
        piIconIndex: *mut WORD,
        piIconId: *mut WORD,
    ) -> HICON;
}
extern "C" {
    pub fn ExtractAssociatedIconExW(
        hInst: HINSTANCE,
        pszIconPath: LPWSTR,
        piIconIndex: *mut WORD,
        piIconId: *mut WORD,
    ) -> HICON;
}
extern "C" {
    pub fn ExtractIconA(hInst: HINSTANCE, pszExeFileName: LPCSTR, nIconIndex: UINT) -> HICON;
}
extern "C" {
    pub fn ExtractIconW(hInst: HINSTANCE, pszExeFileName: LPCWSTR, nIconIndex: UINT) -> HICON;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRAGINFOA {
    pub uSize: UINT,
    pub pt: POINT,
    pub fNC: WINBOOL,
    pub lpFileList: LPSTR,
    pub grfKeyState: DWORD,
}
pub type DRAGINFOA = _DRAGINFOA;
pub type LPDRAGINFOA = *mut _DRAGINFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRAGINFOW {
    pub uSize: UINT,
    pub pt: POINT,
    pub fNC: WINBOOL,
    pub lpFileList: LPWSTR,
    pub grfKeyState: DWORD,
}
pub type DRAGINFOW = _DRAGINFOW;
pub type LPDRAGINFOW = *mut _DRAGINFOW;
pub type DRAGINFO = DRAGINFOA;
pub type LPDRAGINFO = LPDRAGINFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _AppBarData {
    pub cbSize: DWORD,
    pub hWnd: HWND,
    pub uCallbackMessage: UINT,
    pub uEdge: UINT,
    pub rc: RECT,
    pub lParam: LPARAM,
}
pub type APPBARDATA = _AppBarData;
pub type PAPPBARDATA = *mut _AppBarData;
extern "C" {
    pub fn SHAppBarMessage(dwMessage: DWORD, pData: PAPPBARDATA) -> UINT_PTR;
}
extern "C" {
    pub fn DoEnvironmentSubstA(pszSrc: LPSTR, cchSrc: UINT) -> DWORD;
}
extern "C" {
    pub fn DoEnvironmentSubstW(pszSrc: LPWSTR, cchSrc: UINT) -> DWORD;
}
extern "C" {
    pub fn ExtractIconExA(
        lpszFile: LPCSTR,
        nIconIndex: ::std::os::raw::c_int,
        phiconLarge: *mut HICON,
        phiconSmall: *mut HICON,
        nIcons: UINT,
    ) -> UINT;
}
extern "C" {
    pub fn ExtractIconExW(
        lpszFile: LPCWSTR,
        nIconIndex: ::std::os::raw::c_int,
        phiconLarge: *mut HICON,
        phiconSmall: *mut HICON,
        nIcons: UINT,
    ) -> UINT;
}
pub type FILEOP_FLAGS = WORD;
pub type PRINTEROP_FLAGS = WORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHFILEOPSTRUCTA {
    pub hwnd: HWND,
    pub wFunc: UINT,
    pub pFrom: LPCSTR,
    pub pTo: LPCSTR,
    pub fFlags: FILEOP_FLAGS,
    pub fAnyOperationsAborted: WINBOOL,
    pub hNameMappings: LPVOID,
    pub lpszProgressTitle: PCSTR,
}
pub type SHFILEOPSTRUCTA = _SHFILEOPSTRUCTA;
pub type LPSHFILEOPSTRUCTA = *mut _SHFILEOPSTRUCTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHFILEOPSTRUCTW {
    pub hwnd: HWND,
    pub wFunc: UINT,
    pub pFrom: LPCWSTR,
    pub pTo: LPCWSTR,
    pub fFlags: FILEOP_FLAGS,
    pub fAnyOperationsAborted: WINBOOL,
    pub hNameMappings: LPVOID,
    pub lpszProgressTitle: PCWSTR,
}
pub type SHFILEOPSTRUCTW = _SHFILEOPSTRUCTW;
pub type LPSHFILEOPSTRUCTW = *mut _SHFILEOPSTRUCTW;
pub type SHFILEOPSTRUCT = SHFILEOPSTRUCTA;
pub type LPSHFILEOPSTRUCT = LPSHFILEOPSTRUCTA;
extern "C" {
    pub fn SHFileOperationA(lpFileOp: LPSHFILEOPSTRUCTA) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SHFileOperationW(lpFileOp: LPSHFILEOPSTRUCTW) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SHFreeNameMappings(hNameMappings: HANDLE);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHNAMEMAPPINGA {
    pub pszOldPath: LPSTR,
    pub pszNewPath: LPSTR,
    pub cchOldPath: ::std::os::raw::c_int,
    pub cchNewPath: ::std::os::raw::c_int,
}
pub type SHNAMEMAPPINGA = _SHNAMEMAPPINGA;
pub type LPSHNAMEMAPPINGA = *mut _SHNAMEMAPPINGA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHNAMEMAPPINGW {
    pub pszOldPath: LPWSTR,
    pub pszNewPath: LPWSTR,
    pub cchOldPath: ::std::os::raw::c_int,
    pub cchNewPath: ::std::os::raw::c_int,
}
pub type SHNAMEMAPPINGW = _SHNAMEMAPPINGW;
pub type LPSHNAMEMAPPINGW = *mut _SHNAMEMAPPINGW;
pub type SHNAMEMAPPING = SHNAMEMAPPINGA;
pub type LPSHNAMEMAPPING = LPSHNAMEMAPPINGA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SHELLEXECUTEINFOA {
    pub cbSize: DWORD,
    pub fMask: ULONG,
    pub hwnd: HWND,
    pub lpVerb: LPCSTR,
    pub lpFile: LPCSTR,
    pub lpParameters: LPCSTR,
    pub lpDirectory: LPCSTR,
    pub nShow: ::std::os::raw::c_int,
    pub hInstApp: HINSTANCE,
    pub lpIDList: *mut ::std::os::raw::c_void,
    pub lpClass: LPCSTR,
    pub hkeyClass: HKEY,
    pub dwHotKey: DWORD,
    pub __bindgen_anon_1: _SHELLEXECUTEINFOA__bindgen_ty_1,
    pub hProcess: HANDLE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SHELLEXECUTEINFOA__bindgen_ty_1 {
    pub hIcon: HANDLE,
    pub hMonitor: HANDLE,
    _bindgen_union_align: u64,
}
pub type SHELLEXECUTEINFOA = _SHELLEXECUTEINFOA;
pub type LPSHELLEXECUTEINFOA = *mut _SHELLEXECUTEINFOA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SHELLEXECUTEINFOW {
    pub cbSize: DWORD,
    pub fMask: ULONG,
    pub hwnd: HWND,
    pub lpVerb: LPCWSTR,
    pub lpFile: LPCWSTR,
    pub lpParameters: LPCWSTR,
    pub lpDirectory: LPCWSTR,
    pub nShow: ::std::os::raw::c_int,
    pub hInstApp: HINSTANCE,
    pub lpIDList: *mut ::std::os::raw::c_void,
    pub lpClass: LPCWSTR,
    pub hkeyClass: HKEY,
    pub dwHotKey: DWORD,
    pub __bindgen_anon_1: _SHELLEXECUTEINFOW__bindgen_ty_1,
    pub hProcess: HANDLE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SHELLEXECUTEINFOW__bindgen_ty_1 {
    pub hIcon: HANDLE,
    pub hMonitor: HANDLE,
    _bindgen_union_align: u64,
}
pub type SHELLEXECUTEINFOW = _SHELLEXECUTEINFOW;
pub type LPSHELLEXECUTEINFOW = *mut _SHELLEXECUTEINFOW;
pub type SHELLEXECUTEINFO = SHELLEXECUTEINFOA;
pub type LPSHELLEXECUTEINFO = LPSHELLEXECUTEINFOA;
extern "C" {
    pub fn ShellExecuteExA(pExecInfo: *mut SHELLEXECUTEINFOA) -> WINBOOL;
}
extern "C" {
    pub fn ShellExecuteExW(pExecInfo: *mut SHELLEXECUTEINFOW) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHCREATEPROCESSINFOW {
    pub cbSize: DWORD,
    pub fMask: ULONG,
    pub hwnd: HWND,
    pub pszFile: LPCWSTR,
    pub pszParameters: LPCWSTR,
    pub pszCurrentDirectory: LPCWSTR,
    pub hUserToken: HANDLE,
    pub lpProcessAttributes: LPSECURITY_ATTRIBUTES,
    pub lpThreadAttributes: LPSECURITY_ATTRIBUTES,
    pub bInheritHandles: WINBOOL,
    pub dwCreationFlags: DWORD,
    pub lpStartupInfo: LPSTARTUPINFOW,
    pub lpProcessInformation: LPPROCESS_INFORMATION,
}
pub type SHCREATEPROCESSINFOW = _SHCREATEPROCESSINFOW;
pub type PSHCREATEPROCESSINFOW = *mut _SHCREATEPROCESSINFOW;
extern "C" {
    pub fn SHCreateProcessAsUserW(pscpi: PSHCREATEPROCESSINFOW) -> WINBOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHQUERYRBINFO {
    pub cbSize: DWORD,
    pub i64Size: ::std::os::raw::c_longlong,
    pub i64NumItems: ::std::os::raw::c_longlong,
}
pub type SHQUERYRBINFO = _SHQUERYRBINFO;
pub type LPSHQUERYRBINFO = *mut _SHQUERYRBINFO;
extern "C" {
    pub fn SHQueryRecycleBinA(pszRootPath: LPCSTR, pSHQueryRBInfo: LPSHQUERYRBINFO) -> HRESULT;
}
extern "C" {
    pub fn SHQueryRecycleBinW(pszRootPath: LPCWSTR, pSHQueryRBInfo: LPSHQUERYRBINFO) -> HRESULT;
}
extern "C" {
    pub fn SHEmptyRecycleBinA(hwnd: HWND, pszRootPath: LPCSTR, dwFlags: DWORD) -> HRESULT;
}
extern "C" {
    pub fn SHEmptyRecycleBinW(hwnd: HWND, pszRootPath: LPCWSTR, dwFlags: DWORD) -> HRESULT;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _NOTIFYICONDATAA {
    pub cbSize: DWORD,
    pub hWnd: HWND,
    pub uID: UINT,
    pub uFlags: UINT,
    pub uCallbackMessage: UINT,
    pub hIcon: HICON,
    pub szTip: [CHAR; 128usize],
    pub dwState: DWORD,
    pub dwStateMask: DWORD,
    pub szInfo: [CHAR; 256usize],
    pub __bindgen_anon_1: _NOTIFYICONDATAA__bindgen_ty_1,
    pub szInfoTitle: [CHAR; 64usize],
    pub dwInfoFlags: DWORD,
    pub guidItem: GUID,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _NOTIFYICONDATAA__bindgen_ty_1 {
    pub uTimeout: UINT,
    pub uVersion: UINT,
    _bindgen_union_align: u32,
}
pub type NOTIFYICONDATAA = _NOTIFYICONDATAA;
pub type PNOTIFYICONDATAA = *mut _NOTIFYICONDATAA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _NOTIFYICONDATAW {
    pub cbSize: DWORD,
    pub hWnd: HWND,
    pub uID: UINT,
    pub uFlags: UINT,
    pub uCallbackMessage: UINT,
    pub hIcon: HICON,
    pub szTip: [WCHAR; 128usize],
    pub dwState: DWORD,
    pub dwStateMask: DWORD,
    pub szInfo: [WCHAR; 256usize],
    pub __bindgen_anon_1: _NOTIFYICONDATAW__bindgen_ty_1,
    pub szInfoTitle: [WCHAR; 64usize],
    pub dwInfoFlags: DWORD,
    pub guidItem: GUID,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _NOTIFYICONDATAW__bindgen_ty_1 {
    pub uTimeout: UINT,
    pub uVersion: UINT,
    _bindgen_union_align: u32,
}
pub type NOTIFYICONDATAW = _NOTIFYICONDATAW;
pub type PNOTIFYICONDATAW = *mut _NOTIFYICONDATAW;
pub type NOTIFYICONDATA = NOTIFYICONDATAA;
pub type PNOTIFYICONDATA = PNOTIFYICONDATAA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NOTIFYICONIDENTIFIER {
    pub cbSize: DWORD,
    pub hWnd: HWND,
    pub uID: UINT,
    pub guidItem: GUID,
}
pub type NOTIFYICONIDENTIFIER = _NOTIFYICONIDENTIFIER;
pub type PNOTIFYICONIDENTIFIER = *mut _NOTIFYICONIDENTIFIER;
extern "C" {
    pub fn Shell_NotifyIconA(dwMessage: DWORD, lpData: PNOTIFYICONDATAA) -> WINBOOL;
}
extern "C" {
    pub fn Shell_NotifyIconW(dwMessage: DWORD, lpData: PNOTIFYICONDATAW) -> WINBOOL;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SHFILEINFOA {
    pub hIcon: HICON,
    pub iIcon: ::std::os::raw::c_int,
    pub dwAttributes: DWORD,
    pub szDisplayName: [CHAR; 260usize],
    pub szTypeName: [CHAR; 80usize],
}
pub type SHFILEINFOA = _SHFILEINFOA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SHFILEINFOW {
    pub hIcon: HICON,
    pub iIcon: ::std::os::raw::c_int,
    pub dwAttributes: DWORD,
    pub szDisplayName: [WCHAR; 260usize],
    pub szTypeName: [WCHAR; 80usize],
}
pub type SHFILEINFOW = _SHFILEINFOW;
pub type SHFILEINFO = SHFILEINFOA;
extern "C" {
    pub fn SHGetFileInfoA(
        pszPath: LPCSTR,
        dwFileAttributes: DWORD,
        psfi: *mut SHFILEINFOA,
        cbFileInfo: UINT,
        uFlags: UINT,
    ) -> DWORD_PTR;
}
extern "C" {
    pub fn SHGetFileInfoW(
        pszPath: LPCWSTR,
        dwFileAttributes: DWORD,
        psfi: *mut SHFILEINFOW,
        cbFileInfo: UINT,
        uFlags: UINT,
    ) -> DWORD_PTR;
}
extern "C" {
    pub fn SHGetDiskFreeSpaceExA(
        pszDirectoryName: LPCSTR,
        pulFreeBytesAvailableToCaller: *mut ULARGE_INTEGER,
        pulTotalNumberOfBytes: *mut ULARGE_INTEGER,
        pulTotalNumberOfFreeBytes: *mut ULARGE_INTEGER,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SHGetDiskFreeSpaceExW(
        pszDirectoryName: LPCWSTR,
        pulFreeBytesAvailableToCaller: *mut ULARGE_INTEGER,
        pulTotalNumberOfBytes: *mut ULARGE_INTEGER,
        pulTotalNumberOfFreeBytes: *mut ULARGE_INTEGER,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SHGetNewLinkInfoA(
        pszLinkTo: LPCSTR,
        pszDir: LPCSTR,
        pszName: LPSTR,
        pfMustCopy: *mut WINBOOL,
        uFlags: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SHGetNewLinkInfoW(
        pszLinkTo: LPCWSTR,
        pszDir: LPCWSTR,
        pszName: LPWSTR,
        pfMustCopy: *mut WINBOOL,
        uFlags: UINT,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SHInvokePrinterCommandA(
        hwnd: HWND,
        uAction: UINT,
        lpBuf1: LPCSTR,
        lpBuf2: LPCSTR,
        fModal: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SHInvokePrinterCommandW(
        hwnd: HWND,
        uAction: UINT,
        lpBuf1: LPCWSTR,
        lpBuf2: LPCWSTR,
        fModal: WINBOOL,
    ) -> WINBOOL;
}
extern "C" {
    pub fn SHLoadNonloadedIconOverlayIdentifiers() -> HRESULT;
}
extern "C" {
    pub fn SHIsFileAvailableOffline(pwszPath: PCWSTR, pdwStatus: *mut DWORD) -> HRESULT;
}
extern "C" {
    pub fn SHSetLocalizedName(
        pszPath: PCWSTR,
        pszResModule: PCWSTR,
        idsRes: ::std::os::raw::c_int,
    ) -> HRESULT;
}
extern "C" {
    pub fn ShellMessageBoxA(
        hAppInst: HINSTANCE,
        hWnd: HWND,
        lpcText: LPCSTR,
        lpcTitle: LPCSTR,
        fuStyle: UINT,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ShellMessageBoxW(
        hAppInst: HINSTANCE,
        hWnd: HWND,
        lpcText: LPCWSTR,
        lpcTitle: LPCWSTR,
        fuStyle: UINT,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IsLFNDriveA(pszPath: LPCSTR) -> WINBOOL;
}
extern "C" {
    pub fn IsLFNDriveW(pszPath: LPCWSTR) -> WINBOOL;
}
extern "C" {
    pub fn SHEnumerateUnreadMailAccountsA(
        hKeyUser: HKEY,
        dwIndex: DWORD,
        pszMailAddress: LPSTR,
        cchMailAddress: ::std::os::raw::c_int,
    ) -> HRESULT;
}
extern "C" {
    pub fn SHEnumerateUnreadMailAccountsW(
        hKeyUser: HKEY,
        dwIndex: DWORD,
        pszMailAddress: LPWSTR,
        cchMailAddress: ::std::os::raw::c_int,
    ) -> HRESULT;
}
extern "C" {
    pub fn SHGetUnreadMailCountA(
        hKeyUser: HKEY,
        pszMailAddress: LPCSTR,
        pdwCount: *mut DWORD,
        pFileTime: *mut FILETIME,
        pszShellExecuteCommand: LPSTR,
        cchShellExecuteCommand: ::std::os::raw::c_int,
    ) -> HRESULT;
}
extern "C" {
    pub fn SHGetUnreadMailCountW(
        hKeyUser: HKEY,
        pszMailAddress: LPCWSTR,
        pdwCount: *mut DWORD,
        pFileTime: *mut FILETIME,
        pszShellExecuteCommand: LPWSTR,
        cchShellExecuteCommand: ::std::os::raw::c_int,
    ) -> HRESULT;
}
extern "C" {
    pub fn SHSetUnreadMailCountA(
        pszMailAddress: LPCSTR,
        dwCount: DWORD,
        pszShellExecuteCommand: LPCSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn SHSetUnreadMailCountW(
        pszMailAddress: LPCWSTR,
        dwCount: DWORD,
        pszShellExecuteCommand: LPCWSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn SHTestTokenMembership(hToken: HANDLE, ulRID: ULONG) -> WINBOOL;
}
extern "C" {
    pub fn SHGetImageList(
        iImageList: ::std::os::raw::c_int,
        riid: *const IID,
        ppvObj: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
pub type PFNCANSHAREFOLDERW =
    ::std::option::Option<unsafe extern "C" fn(pszPath: PCWSTR) -> HRESULT>;
pub type PFNSHOWSHAREFOLDERUIW =
    ::std::option::Option<unsafe extern "C" fn(hwndParent: HWND, pszPath: PCWSTR) -> HRESULT>;
pub const PROCESS_DPI_AWARENESS_PROCESS_DPI_UNAWARE: PROCESS_DPI_AWARENESS = 0;
pub const PROCESS_DPI_AWARENESS_PROCESS_SYSTEM_DPI_AWARE: PROCESS_DPI_AWARENESS = 1;
pub const PROCESS_DPI_AWARENESS_PROCESS_PER_MONITOR_DPI_AWARE: PROCESS_DPI_AWARENESS = 2;
pub type PROCESS_DPI_AWARENESS = u32;
pub const MONITOR_DPI_TYPE_MDT_EFFECTIVE_DPI: MONITOR_DPI_TYPE = 0;
pub const MONITOR_DPI_TYPE_MDT_ANGULAR_DPI: MONITOR_DPI_TYPE = 1;
pub const MONITOR_DPI_TYPE_MDT_RAW_DPI: MONITOR_DPI_TYPE = 2;
pub const MONITOR_DPI_TYPE_MDT_DEFAULT: MONITOR_DPI_TYPE = 0;
pub type MONITOR_DPI_TYPE = u32;
extern "C" {
    pub static mut _sapp_win32_hwnd: HWND;
}
extern "C" {
    pub static mut _sapp_win32_dc: HDC;
}
extern "C" {
    pub static mut _sapp_win32_in_create_window: bool;
}
extern "C" {
    pub static mut _sapp_win32_dpi_aware: bool;
}
extern "C" {
    pub static mut _sapp_win32_content_scale: f32;
}
extern "C" {
    pub static mut _sapp_win32_window_scale: f32;
}
extern "C" {
    pub static mut _sapp_win32_mouse_scale: f32;
}
extern "C" {
    pub static mut _sapp_win32_iconified: bool;
}
pub type SETPROCESSDPIAWARE_T = ::std::option::Option<unsafe extern "C" fn() -> BOOL>;
pub type SETPROCESSDPIAWARENESS_T =
    ::std::option::Option<unsafe extern "C" fn(arg1: PROCESS_DPI_AWARENESS) -> HRESULT>;
pub type GETDPIFORMONITOR_T = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: HMONITOR,
        arg2: MONITOR_DPI_TYPE,
        arg3: *mut UINT,
        arg4: *mut UINT,
    ) -> HRESULT,
>;
extern "C" {
    pub static mut _sapp_win32_setprocessdpiaware: SETPROCESSDPIAWARE_T;
}
extern "C" {
    pub static mut _sapp_win32_setprocessdpiawareness: SETPROCESSDPIAWARENESS_T;
}
extern "C" {
    pub static mut _sapp_win32_getdpiformonitor: GETDPIFORMONITOR_T;
}
pub type PFNWGLSWAPINTERVALEXTPROC =
    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int) -> BOOL>;
pub type PFNWGLGETPIXELFORMATATTRIBIVARBPROC = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: HDC,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::os::raw::c_int,
        arg4: UINT,
        arg5: *const ::std::os::raw::c_int,
        arg6: *mut ::std::os::raw::c_int,
    ) -> BOOL,
>;
pub type PFNWGLGETEXTENSIONSSTRINGEXTPROC =
    ::std::option::Option<unsafe extern "C" fn() -> *const ::std::os::raw::c_char>;
pub type PFNWGLGETEXTENSIONSSTRINGARBPROC =
    ::std::option::Option<unsafe extern "C" fn(arg1: HDC) -> *const ::std::os::raw::c_char>;
pub type PFNWGLCREATECONTEXTATTRIBSARBPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HDC, arg2: HGLRC, arg3: *const ::std::os::raw::c_int) -> HGLRC,
>;
pub type PFN_wglCreateContext = ::std::option::Option<unsafe extern "C" fn(arg1: HDC) -> HGLRC>;
pub type PFN_wglDeleteContext = ::std::option::Option<unsafe extern "C" fn(arg1: HGLRC) -> BOOL>;
pub type PFN_wglGetProcAddress = ::std::option::Option<unsafe extern "C" fn(arg1: LPCSTR) -> PROC>;
pub type PFN_wglGetCurrentDC = ::std::option::Option<unsafe extern "C" fn() -> HDC>;
pub type PFN_wglMakeCurrent =
    ::std::option::Option<unsafe extern "C" fn(arg1: HDC, arg2: HGLRC) -> BOOL>;
extern "C" {
    pub static mut _sapp_opengl32: HINSTANCE;
}
extern "C" {
    pub static mut _sapp_gl_ctx: HGLRC;
}
extern "C" {
    pub static mut _sapp_wglCreateContext: PFN_wglCreateContext;
}
extern "C" {
    pub static mut _sapp_wglDeleteContext: PFN_wglDeleteContext;
}
extern "C" {
    pub static mut _sapp_wglGetProcAddress: PFN_wglGetProcAddress;
}
extern "C" {
    pub static mut _sapp_wglGetCurrentDC: PFN_wglGetCurrentDC;
}
extern "C" {
    pub static mut _sapp_wglMakeCurrent: PFN_wglMakeCurrent;
}
extern "C" {
    pub static mut _sapp_SwapIntervalEXT: PFNWGLSWAPINTERVALEXTPROC;
}
extern "C" {
    pub static mut _sapp_GetPixelFormatAttribivARB: PFNWGLGETPIXELFORMATATTRIBIVARBPROC;
}
extern "C" {
    pub static mut _sapp_GetExtensionsStringEXT: PFNWGLGETEXTENSIONSSTRINGEXTPROC;
}
extern "C" {
    pub static mut _sapp_GetExtensionsStringARB: PFNWGLGETEXTENSIONSSTRINGARBPROC;
}
extern "C" {
    pub static mut _sapp_CreateContextAttribsARB: PFNWGLCREATECONTEXTATTRIBSARBPROC;
}
extern "C" {
    pub static mut _sapp_ext_swap_control: bool;
}
extern "C" {
    pub static mut _sapp_arb_multisample: bool;
}
extern "C" {
    pub static mut _sapp_arb_pixel_format: bool;
}
extern "C" {
    pub static mut _sapp_arb_create_context: bool;
}
extern "C" {
    pub static mut _sapp_arb_create_context_profile: bool;
}
extern "C" {
    pub static mut _sapp_win32_msg_hwnd: HWND;
}
extern "C" {
    pub static mut _sapp_win32_msg_dc: HDC;
}
pub type GLenum = ::std::os::raw::c_uint;
pub type GLuint = ::std::os::raw::c_uint;
pub type GLsizei = ::std::os::raw::c_int;
pub type GLchar = ::std::os::raw::c_char;
pub type GLintptr = isize;
pub type GLsizeiptr = ::std::os::raw::c_longlong;
pub type GLclampd = f64;
pub type GLushort = ::std::os::raw::c_ushort;
pub type GLubyte = ::std::os::raw::c_uchar;
pub type GLboolean = ::std::os::raw::c_uchar;
pub type GLuint64 = u64;
pub type GLdouble = f64;
pub type GLhalf = ::std::os::raw::c_ushort;
pub type GLclampf = f32;
pub type GLbitfield = ::std::os::raw::c_uint;
pub type GLbyte = ::std::os::raw::c_schar;
pub type GLshort = ::std::os::raw::c_short;
pub type GLvoid = ::std::os::raw::c_void;
pub type GLint64 = i64;
pub type GLfloat = f32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __GLsync {
    _unused: [u8; 0],
}
pub type GLsync = *mut __GLsync;
pub type GLint = ::std::os::raw::c_int;
pub type PFN_glCreateTextures =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, n: GLsizei, textures: *mut GLuint)>;
extern "C" {
    pub static mut _sapp_glCreateTextures: PFN_glCreateTextures;
}
extern "C" {
    pub fn glCreateTextures(target: GLenum, n: GLsizei, textures: *mut GLuint);
}
pub type PFN_glCreateBuffers =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, buffers: *mut GLuint)>;
extern "C" {
    pub static mut _sapp_glCreateBuffers: PFN_glCreateBuffers;
}
extern "C" {
    pub fn glCreateBuffers(n: GLsizei, buffers: *mut GLuint);
}
pub type PFN_glBindVertexArray = ::std::option::Option<unsafe extern "C" fn(array: GLuint)>;
extern "C" {
    pub static mut _sapp_glBindVertexArray: PFN_glBindVertexArray;
}
extern "C" {
    pub fn glBindVertexArray(array: GLuint);
}
pub type PFN_glFramebufferTextureLayer = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        texture: GLuint,
        level: GLint,
        layer: GLint,
    ),
>;
extern "C" {
    pub static mut _sapp_glFramebufferTextureLayer: PFN_glFramebufferTextureLayer;
}
pub type PFN_glGenFramebuffers =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, framebuffers: *mut GLuint)>;
extern "C" {
    pub static mut _sapp_glGenFramebuffers: PFN_glGenFramebuffers;
}
extern "C" {
    pub fn glGenFramebuffers(n: GLsizei, framebuffers: *mut GLuint);
}
pub type PFN_glBindFramebuffer =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, framebuffer: GLuint)>;
extern "C" {
    pub static mut _sapp_glBindFramebuffer: PFN_glBindFramebuffer;
}
extern "C" {
    pub fn glBindFramebuffer(target: GLenum, framebuffer: GLuint);
}
pub type PFN_glBindRenderbuffer =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, renderbuffer: GLuint)>;
extern "C" {
    pub static mut _sapp_glBindRenderbuffer: PFN_glBindRenderbuffer;
}
pub type PFN_glGetStringi =
    ::std::option::Option<unsafe extern "C" fn(name: GLenum, index: GLuint) -> *const GLubyte>;
extern "C" {
    pub static mut _sapp_glGetStringi: PFN_glGetStringi;
}
pub type PFN_glClearBufferfi = ::std::option::Option<
    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint),
>;
extern "C" {
    pub static mut _sapp_glClearBufferfi: PFN_glClearBufferfi;
}
pub type PFN_glClearBufferfv = ::std::option::Option<
    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, value: *const GLfloat),
>;
extern "C" {
    pub static mut _sapp_glClearBufferfv: PFN_glClearBufferfv;
}
pub type PFN_glClearBufferuiv = ::std::option::Option<
    unsafe extern "C" fn(buffer: GLenum, drawbuffer: GLint, value: *const GLuint),
>;
extern "C" {
    pub static mut _sapp_glClearBufferuiv: PFN_glClearBufferuiv;
}
pub type PFN_glDeleteRenderbuffers =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, renderbuffers: *const GLuint)>;
extern "C" {
    pub static mut _sapp_glDeleteRenderbuffers: PFN_glDeleteRenderbuffers;
}
pub type PFN_glUniform4fv = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
>;
extern "C" {
    pub static mut _sapp_glUniform4fv: PFN_glUniform4fv;
}
extern "C" {
    pub fn glUniform4fv(location: GLint, count: GLsizei, value: *const GLfloat);
}
pub type PFN_glUniform2fv = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
>;
extern "C" {
    pub static mut _sapp_glUniform2fv: PFN_glUniform2fv;
}
extern "C" {
    pub fn glUniform2fv(location: GLint, count: GLsizei, value: *const GLfloat);
}
pub type PFN_glUseProgram = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
extern "C" {
    pub static mut _sapp_glUseProgram: PFN_glUseProgram;
}
extern "C" {
    pub fn glUseProgram(program: GLuint);
}
pub type PFN_glShaderSource = ::std::option::Option<
    unsafe extern "C" fn(
        shader: GLuint,
        count: GLsizei,
        string: *const *const GLchar,
        length: *const GLint,
    ),
>;
extern "C" {
    pub static mut _sapp_glShaderSource: PFN_glShaderSource;
}
extern "C" {
    pub fn glShaderSource(
        shader: GLuint,
        count: GLsizei,
        string: *const *const GLchar,
        length: *const GLint,
    );
}
pub type PFN_glLinkProgram = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
extern "C" {
    pub static mut _sapp_glLinkProgram: PFN_glLinkProgram;
}
extern "C" {
    pub fn glLinkProgram(program: GLuint);
}
pub type PFN_glGetUniformLocation =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, name: *const GLchar) -> GLint>;
extern "C" {
    pub static mut _sapp_glGetUniformLocation: PFN_glGetUniformLocation;
}
extern "C" {
    pub fn glGetUniformLocation(program: GLuint, name: *const GLchar) -> GLint;
}
pub type PFN_glGetShaderiv =
    ::std::option::Option<unsafe extern "C" fn(shader: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut _sapp_glGetShaderiv: PFN_glGetShaderiv;
}
extern "C" {
    pub fn glGetShaderiv(shader: GLuint, pname: GLenum, params: *mut GLint);
}
pub type PFN_glGetProgramInfoLog = ::std::option::Option<
    unsafe extern "C" fn(
        program: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        infoLog: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut _sapp_glGetProgramInfoLog: PFN_glGetProgramInfoLog;
}
extern "C" {
    pub fn glGetProgramInfoLog(
        program: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        infoLog: *mut GLchar,
    );
}
pub type PFN_glGetAttribLocation =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, name: *const GLchar) -> GLint>;
extern "C" {
    pub static mut _sapp_glGetAttribLocation: PFN_glGetAttribLocation;
}
extern "C" {
    pub fn glGetAttribLocation(program: GLuint, name: *const GLchar) -> GLint;
}
pub type PFN_glDisableVertexAttribArray =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint)>;
extern "C" {
    pub static mut _sapp_glDisableVertexAttribArray: PFN_glDisableVertexAttribArray;
}
extern "C" {
    pub fn glDisableVertexAttribArray(index: GLuint);
}
pub type PFN_glDeleteShader = ::std::option::Option<unsafe extern "C" fn(shader: GLuint)>;
extern "C" {
    pub static mut _sapp_glDeleteShader: PFN_glDeleteShader;
}
extern "C" {
    pub fn glDeleteShader(shader: GLuint);
}
pub type PFN_glDeleteProgram = ::std::option::Option<unsafe extern "C" fn(program: GLuint)>;
extern "C" {
    pub static mut _sapp_glDeleteProgram: PFN_glDeleteProgram;
}
pub type PFN_glCompileShader = ::std::option::Option<unsafe extern "C" fn(shader: GLuint)>;
extern "C" {
    pub static mut _sapp_glCompileShader: PFN_glCompileShader;
}
extern "C" {
    pub fn glCompileShader(shader: GLuint);
}
pub type PFN_glStencilFuncSeparate = ::std::option::Option<
    unsafe extern "C" fn(face: GLenum, func: GLenum, ref_: GLint, mask: GLuint),
>;
extern "C" {
    pub static mut _sapp_glStencilFuncSeparate: PFN_glStencilFuncSeparate;
}
pub type PFN_glStencilOpSeparate = ::std::option::Option<
    unsafe extern "C" fn(face: GLenum, sfail: GLenum, dpfail: GLenum, dppass: GLenum),
>;
extern "C" {
    pub static mut _sapp_glStencilOpSeparate: PFN_glStencilOpSeparate;
}
pub type PFN_glRenderbufferStorageMultisample = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        samples: GLsizei,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
    ),
>;
extern "C" {
    pub static mut _sapp_glRenderbufferStorageMultisample: PFN_glRenderbufferStorageMultisample;
}
pub type PFN_glDrawBuffers =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, bufs: *const GLenum)>;
extern "C" {
    pub static mut _sapp_glDrawBuffers: PFN_glDrawBuffers;
}
pub type PFN_glVertexAttribDivisor =
    ::std::option::Option<unsafe extern "C" fn(index: GLuint, divisor: GLuint)>;
extern "C" {
    pub static mut _sapp_glVertexAttribDivisor: PFN_glVertexAttribDivisor;
}
extern "C" {
    pub fn glVertexAttribDivisor(index: GLuint, divisor: GLuint);
}
pub type PFN_glBufferSubData = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        offset: GLintptr,
        size: GLsizeiptr,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut _sapp_glBufferSubData: PFN_glBufferSubData;
}
extern "C" {
    pub fn glBufferSubData(
        target: GLenum,
        offset: GLintptr,
        size: GLsizeiptr,
        data: *const ::std::os::raw::c_void,
    );
}
pub type PFN_glGenBuffers =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, buffers: *mut GLuint)>;
extern "C" {
    pub static mut _sapp_glGenBuffers: PFN_glGenBuffers;
}
extern "C" {
    pub fn glGenBuffers(n: GLsizei, buffers: *mut GLuint);
}
pub type PFN_glCheckFramebufferStatus =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum) -> GLenum>;
extern "C" {
    pub static mut _sapp_glCheckFramebufferStatus: PFN_glCheckFramebufferStatus;
}
pub type PFN_glFramebufferRenderbuffer = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        renderbuffertarget: GLenum,
        renderbuffer: GLuint,
    ),
>;
extern "C" {
    pub static mut _sapp_glFramebufferRenderbuffer: PFN_glFramebufferRenderbuffer;
}
pub type PFN_glCompressedTexImage2D = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
        border: GLint,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut _sapp_glCompressedTexImage2D: PFN_glCompressedTexImage2D;
}
pub type PFN_glCompressedTexImage3D = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLenum,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        border: GLint,
        imageSize: GLsizei,
        data: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut _sapp_glCompressedTexImage3D: PFN_glCompressedTexImage3D;
}
pub type PFN_glActiveTexture = ::std::option::Option<unsafe extern "C" fn(texture: GLenum)>;
extern "C" {
    pub static mut _sapp_glActiveTexture: PFN_glActiveTexture;
}
extern "C" {
    pub fn glActiveTexture(texture: GLenum);
}
pub type PFN_glTexSubImage3D = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        zoffset: GLint,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut _sapp_glTexSubImage3D: PFN_glTexSubImage3D;
}
pub type PFN_glUniformMatrix4fv = ::std::option::Option<
    unsafe extern "C" fn(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    ),
>;
extern "C" {
    pub static mut _sapp_glUniformMatrix4fv: PFN_glUniformMatrix4fv;
}
extern "C" {
    pub fn glUniformMatrix4fv(
        location: GLint,
        count: GLsizei,
        transpose: GLboolean,
        value: *const GLfloat,
    );
}
pub type PFN_glRenderbufferStorage = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei),
>;
extern "C" {
    pub static mut _sapp_glRenderbufferStorage: PFN_glRenderbufferStorage;
}
pub type PFN_glGenTextures =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, textures: *mut GLuint)>;
extern "C" {
    pub static mut _sapp_glGenTextures: PFN_glGenTextures;
}
extern "C" {
    pub fn glGenTextures(n: GLsizei, textures: *mut GLuint);
}
pub type PFN_glPolygonOffset =
    ::std::option::Option<unsafe extern "C" fn(factor: GLfloat, units: GLfloat)>;
extern "C" {
    pub static mut _sapp_glPolygonOffset: PFN_glPolygonOffset;
}
pub type PFN_glDrawElements = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut _sapp_glDrawElements: PFN_glDrawElements;
}
extern "C" {
    pub fn glDrawElements(
        mode: GLenum,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
    );
}
pub type PFN_glDeleteFramebuffers =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, framebuffers: *const GLuint)>;
extern "C" {
    pub static mut _sapp_glDeleteFramebuffers: PFN_glDeleteFramebuffers;
}
pub type PFN_glBlendEquationSeparate =
    ::std::option::Option<unsafe extern "C" fn(modeRGB: GLenum, modeAlpha: GLenum)>;
extern "C" {
    pub static mut _sapp_glBlendEquationSeparate: PFN_glBlendEquationSeparate;
}
extern "C" {
    pub fn glBlendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum);
}
pub type PFN_glDeleteTextures =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, textures: *const GLuint)>;
extern "C" {
    pub static mut _sapp_glDeleteTextures: PFN_glDeleteTextures;
}
pub type PFN_glGetProgramiv =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, pname: GLenum, params: *mut GLint)>;
extern "C" {
    pub static mut _sapp_glGetProgramiv: PFN_glGetProgramiv;
}
extern "C" {
    pub fn glGetProgramiv(program: GLuint, pname: GLenum, params: *mut GLint);
}
pub type PFN_glBindTexture =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, texture: GLuint)>;
extern "C" {
    pub static mut _sapp_glBindTexture: PFN_glBindTexture;
}
extern "C" {
    pub fn glBindTexture(target: GLenum, texture: GLuint);
}
pub type PFN_glTexImage3D = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLint,
        width: GLsizei,
        height: GLsizei,
        depth: GLsizei,
        border: GLint,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut _sapp_glTexImage3D: PFN_glTexImage3D;
}
pub type PFN_glCreateShader = ::std::option::Option<unsafe extern "C" fn(type_: GLenum) -> GLuint>;
extern "C" {
    pub static mut _sapp_glCreateShader: PFN_glCreateShader;
}
extern "C" {
    pub fn glCreateShader(type_: GLenum) -> GLuint;
}
pub type PFN_glTexSubImage2D = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        xoffset: GLint,
        yoffset: GLint,
        width: GLsizei,
        height: GLsizei,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut _sapp_glTexSubImage2D: PFN_glTexSubImage2D;
}
pub type PFN_glClearDepth = ::std::option::Option<unsafe extern "C" fn(depth: GLdouble)>;
extern "C" {
    pub static mut _sapp_glClearDepth: PFN_glClearDepth;
}
extern "C" {
    pub fn glClearDepth(depth: GLdouble);
}
pub type PFN_glClearDepthf = ::std::option::Option<unsafe extern "C" fn(depth: GLfloat)>;
extern "C" {
    pub static mut _sapp_glClearDepthf: PFN_glClearDepthf;
}
extern "C" {
    pub fn glClearDepthf(depth: GLfloat);
}
pub type PFN_glFramebufferTexture2D = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        attachment: GLenum,
        textarget: GLenum,
        texture: GLuint,
        level: GLint,
    ),
>;
extern "C" {
    pub static mut _sapp_glFramebufferTexture2D: PFN_glFramebufferTexture2D;
}
extern "C" {
    pub fn glFramebufferTexture2D(
        target: GLenum,
        attachment: GLenum,
        textarget: GLenum,
        texture: GLuint,
        level: GLint,
    );
}
pub type PFN_glCreateProgram = ::std::option::Option<unsafe extern "C" fn() -> GLuint>;
extern "C" {
    pub static mut _sapp_glCreateProgram: PFN_glCreateProgram;
}
extern "C" {
    pub fn glCreateProgram() -> GLuint;
}
pub type PFN_glViewport = ::std::option::Option<
    unsafe extern "C" fn(x: GLint, y: GLint, width: GLsizei, height: GLsizei),
>;
extern "C" {
    pub static mut _sapp_glViewport: PFN_glViewport;
}
extern "C" {
    pub fn glViewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei);
}
pub type PFN_glDeleteBuffers =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, buffers: *const GLuint)>;
extern "C" {
    pub static mut _sapp_glDeleteBuffers: PFN_glDeleteBuffers;
}
pub type PFN_glDrawArrays =
    ::std::option::Option<unsafe extern "C" fn(mode: GLenum, first: GLint, count: GLsizei)>;
extern "C" {
    pub static mut _sapp_glDrawArrays: PFN_glDrawArrays;
}
extern "C" {
    pub fn glDrawArrays(mode: GLenum, first: GLint, count: GLsizei);
}
pub type PFN_glDrawElementsInstanced = ::std::option::Option<
    unsafe extern "C" fn(
        mode: GLenum,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
        instancecount: GLsizei,
    ),
>;
extern "C" {
    pub static mut _sapp_glDrawElementsInstanced: PFN_glDrawElementsInstanced;
}
extern "C" {
    pub fn glDrawElementsInstanced(
        mode: GLenum,
        count: GLsizei,
        type_: GLenum,
        indices: *const ::std::os::raw::c_void,
        instancecount: GLsizei,
    );
}
pub type PFN_glVertexAttribPointer = ::std::option::Option<
    unsafe extern "C" fn(
        index: GLuint,
        size: GLint,
        type_: GLenum,
        normalized: GLboolean,
        stride: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut _sapp_glVertexAttribPointer: PFN_glVertexAttribPointer;
}
extern "C" {
    pub fn glVertexAttribPointer(
        index: GLuint,
        size: GLint,
        type_: GLenum,
        normalized: GLboolean,
        stride: GLsizei,
        pointer: *const ::std::os::raw::c_void,
    );
}
pub type PFN_glUniform1i = ::std::option::Option<unsafe extern "C" fn(location: GLint, v0: GLint)>;
extern "C" {
    pub static mut _sapp_glUniform1i: PFN_glUniform1i;
}
extern "C" {
    pub fn glUniform1i(location: GLint, v0: GLint);
}
pub type PFN_glDisable = ::std::option::Option<unsafe extern "C" fn(cap: GLenum)>;
extern "C" {
    pub static mut _sapp_glDisable: PFN_glDisable;
}
extern "C" {
    pub fn glDisable(cap: GLenum);
}
pub type PFN_glColorMask = ::std::option::Option<
    unsafe extern "C" fn(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean),
>;
extern "C" {
    pub static mut _sapp_glColorMask: PFN_glColorMask;
}
pub type PFN_glBindBuffer =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, buffer: GLuint)>;
extern "C" {
    pub static mut _sapp_glBindBuffer: PFN_glBindBuffer;
}
extern "C" {
    pub fn glBindBuffer(target: GLenum, buffer: GLuint);
}
pub type PFN_glDeleteVertexArrays =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, arrays: *const GLuint)>;
extern "C" {
    pub static mut _sapp_glDeleteVertexArrays: PFN_glDeleteVertexArrays;
}
pub type PFN_glDepthMask = ::std::option::Option<unsafe extern "C" fn(flag: GLboolean)>;
extern "C" {
    pub static mut _sapp_glDepthMask: PFN_glDepthMask;
}
pub type PFN_glDrawArraysInstanced = ::std::option::Option<
    unsafe extern "C" fn(mode: GLenum, first: GLint, count: GLsizei, instancecount: GLsizei),
>;
extern "C" {
    pub static mut _sapp_glDrawArraysInstanced: PFN_glDrawArraysInstanced;
}
pub type PFN_glClearStencil = ::std::option::Option<unsafe extern "C" fn(s: GLint)>;
extern "C" {
    pub static mut _sapp_glClearStencil: PFN_glClearStencil;
}
extern "C" {
    pub fn glClearStencil(s: GLint);
}
pub type PFN_glScissor = ::std::option::Option<
    unsafe extern "C" fn(x: GLint, y: GLint, width: GLsizei, height: GLsizei),
>;
extern "C" {
    pub static mut _sapp_glScissor: PFN_glScissor;
}
pub type PFN_glUniform3fv = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
>;
extern "C" {
    pub static mut _sapp_glUniform3fv: PFN_glUniform3fv;
}
extern "C" {
    pub fn glUniform3fv(location: GLint, count: GLsizei, value: *const GLfloat);
}
pub type PFN_glGenRenderbuffers =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, renderbuffers: *mut GLuint)>;
extern "C" {
    pub static mut _sapp_glGenRenderbuffers: PFN_glGenRenderbuffers;
}
pub type PFN_glBufferData = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        size: GLsizeiptr,
        data: *const ::std::os::raw::c_void,
        usage: GLenum,
    ),
>;
extern "C" {
    pub static mut _sapp_glBufferData: PFN_glBufferData;
}
extern "C" {
    pub fn glBufferData(
        target: GLenum,
        size: GLsizeiptr,
        data: *const ::std::os::raw::c_void,
        usage: GLenum,
    );
}
pub type PFN_glBlendFuncSeparate = ::std::option::Option<
    unsafe extern "C" fn(
        sfactorRGB: GLenum,
        dfactorRGB: GLenum,
        sfactorAlpha: GLenum,
        dfactorAlpha: GLenum,
    ),
>;
extern "C" {
    pub static mut _sapp_glBlendFuncSeparate: PFN_glBlendFuncSeparate;
}
extern "C" {
    pub fn glBlendFuncSeparate(
        sfactorRGB: GLenum,
        dfactorRGB: GLenum,
        sfactorAlpha: GLenum,
        dfactorAlpha: GLenum,
    );
}
pub type PFN_glTexParameteri =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, param: GLint)>;
extern "C" {
    pub static mut _sapp_glTexParameteri: PFN_glTexParameteri;
}
extern "C" {
    pub fn glTexParameteri(target: GLenum, pname: GLenum, param: GLint);
}
pub type PFN_glGetIntegerv =
    ::std::option::Option<unsafe extern "C" fn(pname: GLenum, data: *mut GLint)>;
extern "C" {
    pub static mut _sapp_glGetIntegerv: PFN_glGetIntegerv;
}
extern "C" {
    pub fn glGetIntegerv(pname: GLenum, data: *mut GLint);
}
pub type PFN_glEnable = ::std::option::Option<unsafe extern "C" fn(cap: GLenum)>;
extern "C" {
    pub static mut _sapp_glEnable: PFN_glEnable;
}
extern "C" {
    pub fn glEnable(cap: GLenum);
}
pub type PFN_glBlitFramebuffer = ::std::option::Option<
    unsafe extern "C" fn(
        srcX0: GLint,
        srcY0: GLint,
        srcX1: GLint,
        srcY1: GLint,
        dstX0: GLint,
        dstY0: GLint,
        dstX1: GLint,
        dstY1: GLint,
        mask: GLbitfield,
        filter: GLenum,
    ),
>;
extern "C" {
    pub static mut _sapp_glBlitFramebuffer: PFN_glBlitFramebuffer;
}
pub type PFN_glStencilMask = ::std::option::Option<unsafe extern "C" fn(mask: GLuint)>;
extern "C" {
    pub static mut _sapp_glStencilMask: PFN_glStencilMask;
}
pub type PFN_glAttachShader =
    ::std::option::Option<unsafe extern "C" fn(program: GLuint, shader: GLuint)>;
extern "C" {
    pub static mut _sapp_glAttachShader: PFN_glAttachShader;
}
extern "C" {
    pub fn glAttachShader(program: GLuint, shader: GLuint);
}
pub type PFN_glGetError = ::std::option::Option<unsafe extern "C" fn() -> GLenum>;
extern "C" {
    pub static mut _sapp_glGetError: PFN_glGetError;
}
pub type PFN_glClearColor = ::std::option::Option<
    unsafe extern "C" fn(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat),
>;
extern "C" {
    pub static mut _sapp_glClearColor: PFN_glClearColor;
}
extern "C" {
    pub fn glClearColor(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat);
}
pub type PFN_glBlendColor = ::std::option::Option<
    unsafe extern "C" fn(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat),
>;
extern "C" {
    pub static mut _sapp_glBlendColor: PFN_glBlendColor;
}
pub type PFN_glTexParameterf =
    ::std::option::Option<unsafe extern "C" fn(target: GLenum, pname: GLenum, param: GLfloat)>;
extern "C" {
    pub static mut _sapp_glTexParameterf: PFN_glTexParameterf;
}
pub type PFN_glTexParameterfv = ::std::option::Option<
    unsafe extern "C" fn(target: GLenum, pname: GLenum, params: *mut GLfloat),
>;
extern "C" {
    pub static mut _sapp_glTexParameterfv: PFN_glTexParameterfv;
}
pub type PFN_glGetShaderInfoLog = ::std::option::Option<
    unsafe extern "C" fn(
        shader: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        infoLog: *mut GLchar,
    ),
>;
extern "C" {
    pub static mut _sapp_glGetShaderInfoLog: PFN_glGetShaderInfoLog;
}
extern "C" {
    pub fn glGetShaderInfoLog(
        shader: GLuint,
        bufSize: GLsizei,
        length: *mut GLsizei,
        infoLog: *mut GLchar,
    );
}
pub type PFN_glDepthFunc = ::std::option::Option<unsafe extern "C" fn(func: GLenum)>;
extern "C" {
    pub static mut _sapp_glDepthFunc: PFN_glDepthFunc;
}
extern "C" {
    pub fn glDepthFunc(func: GLenum);
}
pub type PFN_glStencilOp =
    ::std::option::Option<unsafe extern "C" fn(fail: GLenum, zfail: GLenum, zpass: GLenum)>;
extern "C" {
    pub static mut _sapp_glStencilOp: PFN_glStencilOp;
}
pub type PFN_glStencilFunc =
    ::std::option::Option<unsafe extern "C" fn(func: GLenum, ref_: GLint, mask: GLuint)>;
extern "C" {
    pub static mut _sapp_glStencilFunc: PFN_glStencilFunc;
}
pub type PFN_glEnableVertexAttribArray = ::std::option::Option<unsafe extern "C" fn(index: GLuint)>;
extern "C" {
    pub static mut _sapp_glEnableVertexAttribArray: PFN_glEnableVertexAttribArray;
}
extern "C" {
    pub fn glEnableVertexAttribArray(index: GLuint);
}
pub type PFN_glBlendFunc =
    ::std::option::Option<unsafe extern "C" fn(sfactor: GLenum, dfactor: GLenum)>;
extern "C" {
    pub static mut _sapp_glBlendFunc: PFN_glBlendFunc;
}
extern "C" {
    pub fn glBlendFunc(sfactor: GLenum, dfactor: GLenum);
}
pub type PFN_glUniform1fv = ::std::option::Option<
    unsafe extern "C" fn(location: GLint, count: GLsizei, value: *const GLfloat),
>;
extern "C" {
    pub static mut _sapp_glUniform1fv: PFN_glUniform1fv;
}
extern "C" {
    pub fn glUniform1fv(location: GLint, count: GLsizei, value: *const GLfloat);
}
pub type PFN_glUniform1f =
    ::std::option::Option<unsafe extern "C" fn(location: GLint, value: GLfloat)>;
extern "C" {
    pub static mut _sapp_glUniform1f: PFN_glUniform1f;
}
extern "C" {
    pub fn glUniform1f(location: GLint, value: GLfloat);
}
pub type PFN_glReadBuffer = ::std::option::Option<unsafe extern "C" fn(src: GLenum)>;
extern "C" {
    pub static mut _sapp_glReadBuffer: PFN_glReadBuffer;
}
pub type PFN_glClear = ::std::option::Option<unsafe extern "C" fn(mask: GLbitfield)>;
extern "C" {
    pub static mut _sapp_glClear: PFN_glClear;
}
extern "C" {
    pub fn glClear(mask: GLbitfield);
}
pub type PFN_glTexImage2D = ::std::option::Option<
    unsafe extern "C" fn(
        target: GLenum,
        level: GLint,
        internalformat: GLint,
        width: GLsizei,
        height: GLsizei,
        border: GLint,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut _sapp_glTexImage2D: PFN_glTexImage2D;
}
extern "C" {
    pub fn glTexImage2D(
        target: GLenum,
        level: GLint,
        internalformat: GLint,
        width: GLsizei,
        height: GLsizei,
        border: GLint,
        format: GLenum,
        type_: GLenum,
        pixels: *const ::std::os::raw::c_void,
    );
}
pub type PFN_glGenVertexArrays =
    ::std::option::Option<unsafe extern "C" fn(n: GLsizei, arrays: *mut GLuint)>;
extern "C" {
    pub static mut _sapp_glGenVertexArrays: PFN_glGenVertexArrays;
}
extern "C" {
    pub fn glGenVertexArrays(n: GLsizei, arrays: *mut GLuint);
}
pub type PFN_glFrontFace = ::std::option::Option<unsafe extern "C" fn(mode: GLenum)>;
extern "C" {
    pub static mut _sapp_glFrontFace: PFN_glFrontFace;
}
pub type PFN_glCullFace = ::std::option::Option<unsafe extern "C" fn(mode: GLenum)>;
extern "C" {
    pub static mut _sapp_glCullFace: PFN_glCullFace;
}
pub type __builtin_va_list = *mut ::std::os::raw::c_char;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct lconv {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACTIVATION_CONTEXT {
    pub _address: u8,
}
